J'ai un projet iOS/OS X Xcode, où j'utilise CocoaPods, et je n'arrive pas à comprendre comment ajouter mes propres configurations de projet (en plus de Debug et Release) sans faire exploser complètement la build.
Dans le projet, j'ai un certain nombre de cibles, pour les applications sur les deux plates-formes et ses extensions d'application. L'espace de travail Xcode a bien sûr également le projet Pods.
Parce que le projet crée des cibles pour iOS et Mac, j'utilise des "cibles" CocoaPods pour regrouper leurs pods. Mon Podfile ressemble à ceci:
source 'https://github.com/CocoaPods/Specs.git'
target :iOS do
platform :ios, '7.1'
link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'
# pods...
end
target :Mac do
platform :osx, '10.9'
link_with 'Mac'
# pods...
end
Voici maintenant où j'ai un problème. Jusqu'à présent, je n'ai eu que les configurations par défaut "Debug" et "Release" dans mon projet. Je voulais les modifier et en ajouter de nouveaux pour une combinaison différente de profil d'approvisionnement/ID de bundle.
… Et je suis coincé. Je ne sais pas comment faire ça.
Le premier signe du problème était un avertissement pod install
craché pour chaque combinaison cible/configuration:
[!] CocoaPods n'a pas défini la configuration de base de votre projet car votre projet possède déjà un ensemble de configuration personnalisé. Pour que l'intégration de CocoaPod fonctionne, veuillez définir les configurations de base de la cible
NozbeToday
surPods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
ou incluez lePods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
dans votre configuration de build.
Je ne pouvais pas comprendre ce que cela signifie et comment y remédier. Quoi qu'il en soit, le projet ne serait pas construit - dans le meilleur des cas, j'obtiendrais une erreur de l'éditeur de liens disant qu'il ne peut pas trouver Pods-something.a
…
OK, alors à mi-chemin de l'écriture de cette question, je l'ai compris moi-même (yay ducking en caoutchouc). Voici la solution pour les prochaines générations:
Essentiellement, vous devez ajouter une dépendance explicite à la cible Pods à votre schéma d'application.
La façon dont vous le faites est la suivante: modifiez votre schéma d'application, accédez à la section Build et ajoutez la cible Pods ci-dessus votre cible d'application. Vous devriez voir quelque chose comme ceci:
Et ça va juste marcher.
Quant aux avertissements CocoaPods sur pod install
, vous devez utiliser les fichiers xcconfig
générés par CP pour chacune de vos configurations Xcode. La façon dont vous le faites est:
Pods/Target Support Files
Vous aurez également besoin de quelque chose comme ça dans votre Podfile pour que CocoaPods sache lesquelles de vos configurations Xcode sont "debug" (non optimisées), qui sont "release":
project '1Nozbe', {
'iOS 1 Dev Debug' => :debug,
'iOS 2 Dev AdHoc' => :release,
'iOS 3 Release Debug' => :debug,
'iOS 4 Release AdHoc' => :release,
'iOS 5 Release AppStore' => :release,
}
Pas exactement lié à CocoaPods, mais si vous avez d'autres dépendances (sous-projet) autres que CP, vous devrez également faire deux choses:
Ajoutez cette ligne dans votre fichier de configuration, tout comme pour importer un fichier d'en-tête:
#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"
REMARQUE: c'est #include
, ne pas #import