🔧
xcworkspaceに含まれるxcodeproj全てにPodfileを適用させる
はじめに
CocoaPodsでライブラリを導入する場合、単体のプロジェクト(xcodeproj)に対してライブラリを導入するには
-
プロジェクトが格納されているディレクトリで
pod init
-
Podfileを編集
target 'MyApp' do use_frameworks! pod 'Alamofire', '~> 3.0' end
-
pod install
を実行してライブラリをインストール -
以降、自動で生成されるワークスペース(.xcworkspace)からXcodeを展開して開発
が一般的な手順かと思いますが、事前にこちらで複数のxcodeprojを内包したxcworkspaceを定義して、そのワークスペース全体に対して(=ワークスペースに含まれるxcodeproj全てに対して)ライブラリを一括で導入する方法もあります。
手順
Podfileでabstract_target
を定義し、以下のように記述する。abstract_target
の名前自体は任意で良い。
# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' do
pod 'ShowsKit'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
end
あるいは、Podfileには暗黙的に abstact targetが存在するので、共通してイントールするライブラリを各target
の上にpod 'HogeKit'
を記述する
pod 'ShowsKit'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
参考
Discussion