Używam CocoaPods z moim projektem Xcode 4 i mam trzy cele dla mojego projektu (domyślny, jeden do tworzenia wersji lite i jeden do tworzenia wersji demonstracyjnej). Wszystkie cele używają tych samych bibliotek, ale CocoaPods dodaje tylko bibliotekę statyczną i ścieżki wyszukiwania do głównego celu. Mój plik podfile wygląda następująco:
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'
Jedynym sposobem, w jaki udało mi się to uruchomić, było określenie każdego celu osobno ze wszystkimi wymienionymi kapsułkami.
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
Czy jest lepszy sposób, aby to zrobić?
Odpowiedzi:
CocoaPods 1.0 zmieniła składnię tego. Teraz wygląda to tak:
Nieaktualne Pre CocoaPods 1,0 odpowiedź:
Tak, jest lepszy sposób! Sprawdź,
link_with
gdzie możeszlink_with 'MyApp', 'MyOtherApp'
określić wiele celów.Używam tego z testami jednostkowymi, takimi jak
link_with 'App', 'App-Tests'
(uwaga na spacje w nazwach celów).Przykład:
Aktualizacja 2017
Możesz użyć abstract_target
źródło
Myślę, że lepszym rozwiązaniem jest
Źródła: http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
źródło
link_with
zerwane itp.) Może to również pomóc ludziom zobaczyć problem i zagłosować na twoją odpowiedź :)Jeśli chcesz, aby wiele celów współdzieliło te same pody, użyj abstract_target.
Lub tylko
źródło: https://guides.cocoapods.org/using/the-podfile.html
źródło
Najłatwiejszym sposobem jest użycie abstrakcyjnego celu, w którym każdy określony pod będzie połączony ze wszystkimi celami.
źródło
realTarget
wejść raczej do środkasomeNameForAbstractTarget
niż na zewnątrz?