[解決済み] XcodeプロジェクトのPodfileで複数のターゲットを指定するにはどうすればよいですか?
2022-04-26 15:41:16
質問
Xcode 4のプロジェクトでCocoaPodsを使っていますが、私のプロジェクトには3つのターゲットがあります(デフォルト、ライトバージョン構築用、デモバージョン構築用の3つ)。すべてのターゲットは同じライブラリを使用しますが、CocoaPodsは静的ライブラリと検索パスをプライマリターゲットにのみ追加します。私のPodfileは以下のような感じです。
platform :ios, '5.0'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
これを動作させる唯一の方法は、各ターゲットを個別に指定し、すべてのポッドを再度リストアップすることでした。
platform :ios, '5.0'
target :default do
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :lite do
link_with 'app-lite'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :demo do
link_with 'app-demo'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
何か良い方法はないでしょうか?
どのように解決するのですか?
以来
CocoaPods 1.0
は構文が変更され、代わりに
link_with
のようにします。
# Note; name needs to be all lower-case.
def shared_pods
pod 'SSKeychain', '~> 0.1.4'
pod 'INAppStoreWindow', :head
pod 'AFNetworking', '1.1.0'
pod 'Reachability', '~> 3.1.0'
pod 'KSADNTwitterFormatter', '~> 0.1.0'
pod 'MASShortcut', '~> 1.1'
pod 'MagicalRecord', '2.1'
pod 'MASPreferences', '~> 1.0'
end
target 'Sail' do
shared_pods
end
target 'Sail-iOS' do
shared_pods
end
古い回答 CocoaPods 1.0以前のものです。
そう、もっといい方法があるんです! 次のことを確認してください。
link_with
できるところ
link_with 'MyApp', 'MyOtherApp'
で複数のターゲットを指定することができます。
のような単体テストで使っています。
link_with 'App', 'App-Tests'
(ターゲット名のスペースに注意)。
例
platform :osx, '10.8'
link_with 'Sail', 'Sail-Tests'
pod 'SSKeychain', '~> 0.1.4'
pod 'INAppStoreWindow', :head
pod 'AFNetworking', '1.1.0'
pod 'Reachability', '~> 3.1.0'
pod 'KSADNTwitterFormatter', '~> 0.1.0'
pod 'MASShortcut', '~> 1.1'
pod 'MagicalRecord', '2.1'
pod 'MASPreferences', '~> 1.0'
を使ったアプローチ アブストラクトターゲット :
以下の例では
'ShowsiOS'
,
'ShowsTV'
と
'ShowsTests'
ターゲットはそれぞれ独立したポッドを持ち、さらに
ShowsKit
は、すべてダミーターゲットの子であるため、継承されます。
'Shows'
.
# Note: There are no targets called "Shows" in any of this workspace's Xcode projects.
abstract_target 'Shows' do
pod 'ShowsKit'
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
target 'ShowsTV' do
pod 'ShowTVAuth'
end
# Our tests target has its own copy
# of our testing frameworks
# (beside inheriting ShowsKit pod).
target 'ShowsTests' do
inherit! :search_paths
pod 'Specta'
pod 'Expecta'
end
end
関連
-
[解決済み】Xcode 10 Error: 複数のコマンドが生成される
-
[解決済み] Xcode 4で「既存のフレームワークを追加」する方法は?
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] Xcode DMGまたはXIPファイルをダウンロードする方法は?
-
[解決済み] Xcode プロジェクトのための Git 無視ファイル
-
[解決済み] Xcodeで複数行のインデントを行うにはどうすればよいですか?
-
[解決済み] プロジェクトからCocoaPodsを削除する方法は?
-
[解決済み] XcodeプロジェクトとXcodeワークスペースの比較 - 違い
-
[解決済み] UserInterfaceState.xcuserstateを無視できない。
-
[解決済み] なぜXcodeのブレークポイントが機能しないのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Xcode Common Error Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)
-
[解決済み】Xcode 11でSwiftパッケージの依存関係を削除する方法は?
-
[解決済み] Xcodeでベクター画像はどのように動作しますか(例:pdfファイル)?
-
[解決済み] SwiftでNSStringからNSDataを作成する
-
[解決済み] Xcodeプロジェクトにあるコード行数を調べるには?
-
[解決済み] Xcodeで古い/未使用のデータモデルバージョンを削除する方法
-
[解決済み] XcodeプロジェクトのPodfileで複数のターゲットを指定するにはどうすればよいですか?
-
[解決済み] スクリプトの実行」ビルド フェーズをリリース構成に制限するにはどうすればよいですか?
-
[解決済み] Xcode 6 / Beta 4: フレームワークターゲットでのブリッジングヘッダーの使用はサポートされていません。
-
[解決済み] Xcode 4のスキームの名前を変更する方法はありますか?