J'utilise CocoaPods avec mon projet Xcode 4 et j'ai trois cibles pour mon projet (la valeur par défaut, une pour créer une version allégée et une pour créer une version de démonstration). Toutes les cibles utilisent les mêmes bibliothèques, mais CocoaPods ajoute uniquement la bibliothèque statique et les chemins de recherche à la cible principale. Mon podfile ressemble à ceci:
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'
Le seul moyen pour que cela fonctionne était de spécifier chaque cible individuellement avec tous les pods répertoriés à nouveau.
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
Y a-t-il une meilleure manière de faire cela?
Réponses:
CocoaPods 1.0 a changé la syntaxe pour cela. Cela ressemble maintenant à ceci:
Outdated Pre CocoaPods 1.0 réponse:
Oui, il y a un meilleur moyen! Découvrez
link_with
où vous pouvez fairelink_with 'MyApp', 'MyOtherApp'
pour spécifier plusieurs cibles.J'utilise ceci avec des tests unitaires comme
link_with 'App', 'App-Tests'
(attention aux espaces dans les noms des cibles).Exemple:
Mise à jour 2017
Vous pouvez utiliser abstract_target
la source
Je pense qu'une meilleure solution est
Référence de: http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
la source
link_with
et à voter pour votre réponse :)Si vous souhaitez que plusieurs cibles partagent les mêmes pods, utilisez un abstract_target.
ou juste
source: https://guides.cocoapods.org/using/the-podfile.html
la source
Le moyen le plus simple consiste à utiliser une cible abstraite, où chaque pod spécifié sera lié à toutes les cibles.
la source
realTarget
aller à l' intérieursomeNameForAbstractTarget
plutôt qu'à l'extérieur?