CocoaPodsを使用しているiOS/OS X Xcodeプロジェクトがあり、ビルドを完全に爆破せずに自分のプロジェクト構成(デバッグとリリースに加えて)を追加する方法を理解できないようです。
このプロジェクトには、両方のプラットフォームのアプリとそのアプリ拡張機能のターゲットがいくつかあります。 XcodeワークスペースにはもちろんPodsプロジェクトもあります。
このプロジェクトはiOSおよびMacのターゲットを構築するため、CocoaPodsの「ターゲット」を使用してポッドをグループ化します。私のPodfileは次のようになります:
source 'https://github.com/CocoaPods/Specs.git'
target :iOS do
platform :ios, '7.1'
link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'
# pods...
end
target :Mac do
platform :osx, '10.9'
link_with 'Mac'
# pods...
end
さて、ここに問題があります。これまでのところ、プロジェクトにはデフォルトの「デバッグ」および「リリース」構成しかありませんでした。それらを変更し、異なるプロビジョニングプロファイル/バンドルIDの組み合わせにいくつか新しいものを追加したかったのです。
…そして、私は立ち往生しています。これを行う方法がわかりません。
問題の最初の兆候は、すべてのターゲット/構成の組み合わせに対して警告pod install
が吐き出されたことです。
[!]プロジェクトにはすでにカスタム構成セットがあるため、CocoaPodsはプロジェクトの基本構成を設定しませんでした。 CocoaPods統合がまったく機能するためには、ターゲット
NozbeToday
の基本構成をPods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
に設定するか、ビルド構成にPods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
を含めてください。
私はそれが何を意味し、これを修正する方法を理解できませんでした。いずれにせよ、プロジェクトはビルドされません—最良のケースでは、Pods-something.a
…が見つからないというリンカエラーが発生します。
OK、この質問を書く途中で私は自分でそれを理解しました(イヤラダッキング)。次世代のソリューションは次のとおりです。
基本的に、Podターゲットへの明示的な依存関係をアプリケーションスキームに追加する必要があります。
その方法は次のとおりです。アプリケーションスキームを編集し、[ビルド]セクションに移動して、ポッドターゲットを追加します上記アプリケーションターゲット。次のようなものが表示されるはずです。
そして、それはうまくいくでしょう。
pod install
のCocoaPods警告については、Xcode構成ごとにCPによって生成されたxcconfig
ファイルを使用する必要があります。その方法は次のとおりです。
Pods/Target Support Files
で.xcconfigファイルを見つけますまた、Xcode構成のどれが「デバッグ」(最適化されていない)、「リリース」であるかをCocoaPodsに知らせるには、Podfileに次のようなものが必要です。
project '1Nozbe', {
'iOS 1 Dev Debug' => :debug,
'iOS 2 Dev AdHoc' => :release,
'iOS 3 Release Debug' => :debug,
'iOS 4 Release AdHoc' => :release,
'iOS 5 Release AppStore' => :release,
}
CocoaPodsとはまったく関係ありませんが、CP以外の他の(サブプロジェクト)依存関係がある場合は、2つのことも行う必要があります。
ヘッダーファイルをインポートするのと同じように、設定ファイルに次の行を追加します。
#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"
注:#include
ではなく#import
です