Ich verwende CocoaPods mit meinem Xcode 4-Projekt und habe drei Ziele für mein Projekt (das Standardziel, eines zum Erstellen einer Lite-Version und eines zum Erstellen einer Demoversion). Alle Ziele verwenden dieselben Bibliotheken, aber CocoaPods fügt dem primären Ziel nur die statische Bibliothek und die Suchpfade hinzu. Mein Podfile sieht folgendermaßen aus:
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'
Die einzige Möglichkeit, dies zum Laufen zu bringen, bestand darin, jedes Ziel einzeln mit allen erneut aufgelisteten Pods anzugeben.
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
Gibt es einen besseren Weg, dies zu tun?
Antworten:
CocoaPods 1.0 hat die Syntax dafür geändert. Es sieht jetzt so aus:
OUTDATED Pre CocoaPods 1.0 Antwort:
Ja, es gibt einen besseren Weg! Überprüfen Sie,
link_with
wo Sielink_with 'MyApp', 'MyOtherApp'
mehrere Ziele angeben können.Ich benutze dies mit Unit-Tests wie
link_with 'App', 'App-Tests'
(Vorsicht vor Leerzeichen in den Namen der Ziele).Beispiel:
Update 2017
Sie können abstract_target verwenden
quelle
Ich denke, eine bessere Lösung ist
Referenz von: http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
quelle
link_with
ausfallen usw.) Es könnte auch den Leuten helfen, das Problem zu erkennen und Ihre Antwort zuWenn Sie möchten, dass mehrere Ziele dieselben Pods gemeinsam nutzen, verwenden Sie ein abstract_target.
oder nur
Quelle: https://guides.cocoapods.org/using/the-podfile.html
quelle
Am einfachsten ist es, ein abstraktes Ziel zu verwenden, bei dem jeder angegebene Pod mit allen Zielen verknüpft wird.
quelle
realTarget
nicht eher drinnensomeNameForAbstractTarget
als draußen gehen ?