2016-05-19 13 views
2

私のXcodeプロジェクトでは、ビルド設定にカスタム.xcconfigファイルが使用されています。私は、debug.xcconfig、beta.xcconfig、release.xcconfigを持っています。彼らは、同じ3ビルド構成のために、各ターゲットに追加されます:Cocoapods 1.0:複数のターゲットの同じポッド

enter image description here

私はすべてのターゲットのための統合されたすべての私のポッドを必要とします。ただし、ポッドインストールを実行すると、Cocoapodsは各ターゲットに対して3つの.xcconfigファイルを生成し、それらを各ターゲットに追加するか、カスタム.xcconfigファイルに追加することを想定しています。メッセージには

プロジェクトにはすでにカスタム設定があるため、プロジェクトの基本設定が設定されていません。 CocoaPods 統合がまったく機能するように、ターゲット 'Target1'の の基本設定を 'Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig'に設定するか、 'ビルド構成 ( 'MyProject/Configuration/Debug.xcconfig')内のポッド/ターゲットサポートファイル/ Pods-Target1/Pods-Target1.debug.xcconfig '

Cocoapodsで生成されたxcconfigファイルに基本設定を設定できません。ビルド設定をターゲットに適用するために、カスタムxcconfigファイルをベースとして設定する必要があります。だから私はインクルードルートを下る必要があります。 はCocoapodsの0.xで、私はちょうどこれが私のカスタム.xcconfigファイルに含める置くことができました:

#include "../Pods/Target Support Files/Pods/Pods.debug.xcconfig" 

しかしCocoapods 1.0で、私は(私のxcconfigsごとに)このような何かを期待しています:

#include "../Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target2/Pods-Target2.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target3/Pods-Target3.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target4/Pods-Target4.debug.xcconfig" 

これは良くありません。私のプロジェクトには12のターゲットがあります。つまり、3つのカスタム.xcconfigのそれぞれに12個のインクルードを入れる必要があります。合計で36個が含まれます。より良い方法が必要です。

私は、抽象的なターゲットを含む、私のPodfileでいくつかの異なるアプローチを試みましたが、結果は常に同じです。 誰かがこれを解決する方法を知っていますか?

HERESに私のPodfileコードは:

platform :ios, '8.4' 
use_frameworks! 


def myPods 

    pod 'SplunkMint' 
    pod 'Alamofire', '~> 3.0' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' 

end 

target 'target1' do 
    myPods 
end 

target 'target2' do 
    myPods 
end 

target 'target3' do 
    myPods 
end 

target 'target4' do 
    myPods 
end 
+0

ポッドファイルコードを投稿できますか? – lubilis

+0

これは現在のPodfileです。しかし、私が言及したように、私は同じ結果を持つ異なるバージョンをテストしました。 プラットフォーム:ios、 '8.4' use_frameworks! デフmyPods ポッド 'SplunkMint' ポッド 'Alamofire'、 '〜> 3.0' ポッド 'SwiftyJSON'、:gitの=> 'https://github.com/SwiftyJSON/SwiftyJSON.git' 終了 ターゲットのターゲット1 'を実行 myPods エンド ターゲットのTARGET2'を実行 myPods エンド ターゲットのtarget3 'を実行 myPods エンド ターゲットのtarget4 "を行いますmyPods end – Telstar

答えて

2

あなたは、すべてのカスタムターゲット設定内のすべてのポッドの設定を含めるべきではありませんが、各ターゲットの設定は、それ自身の参照ポッドの設定含める必要があります。

ターゲット2

#include "../Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig" 

ターゲット2

#include "../Pods/Target Support Files/Pods-Target2/Pods-Target2.debug.xcconfig" 

PodFileは、多分あなたは「myPods」定義の前に目標の明示的な型べきで、正しいようだ:

xcodeproj 'YourProjectName', { 
    'Target1' => :release, 
    'Target2' => :debug, 
    'Target3' => :debug 
    'Target4' => :debug 
} 

あなたのXcodeの構成(画像)があまりにも良いようで、私の作業のプロジェクトとの唯一の違いは、私が選択していることですプロジェクトレベルでは「アプリケーション」ではなく「なし」です。

xcodeを閉じて、すべてのポッドを削除してからポッドインストールを再度実行してみます。

+0

私はあなたを正しく理解しているかどうかを見てみましょう: ターゲット設定1:ターゲット設定ファイルをtarget1-debug.xcconfigに設定しました(作成する新しいファイル)。 このファイルには、自分自身のリファレンスポッド設定と、既存のDebug.xcconfigが含まれています。 残りのターゲットと同じ手順です。 Cocoapods 0.x:Debug.xcconfigですべてのターゲット(Debug設定)のベースconfファイルとして取得できました。 Cocoapods 1.0:各ターゲットには、自分のベースconfファイルが必要です。これには、前述のように必要なものが含まれています。 正しいですか? – Telstar

+0

いいですね、Cocoapods 1.0でこのように設定されたプロジェクトがあり、うまく動作します。 – lubilis

+0

ありがとうございました。少し努力しましたが、現在作業中です。 – Telstar

関連する問題