ios - tutorial - xcode framework




Comment ajouter des configurations de projet personnalisées à Xcode lors de l'utilisation de CocoaPods? (2)

Ajoutez cette ligne dans votre fichier de configuration, comme si vous importiez un fichier d’en-tête:

#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"

NOTE: c'est #include , pas #import

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 complètement exploser la construction.

Dans le projet, j'ai plusieurs cibles, pour les applications sur les deux plates-formes et ses extensions. Bien entendu, l’espace de travail Xcode contient également le projet Pods.

Comme le projet crée des cibles pour iOS et Mac, j'utilise des "cibles" CocoaPods pour regrouper leurs pods. Mon Podfile ressemble à quelque chose comme ça:

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

Maintenant, voici 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 souhaitais les modifier et en ajouter de nouveaux pour différentes combinaisons de profil d'approvisionnement / ID de regroupement.

… Et je suis coincé. Je n'arrive pas à comprendre comment faire cela.

Le premier signe du problème a été l' pod install un pod install avertissement pour chaque combinaison cible / configuration:

[!] CocoaPods n'a pas défini la configuration de base de votre projet car votre projet a déjà un jeu de configuration personnalisé. Pour que l'intégration de CocoaPods fonctionne, définissez les configurations de base de NozbeToday cible sur Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig ou incluez les Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig dans votre configuration de construction.

Je ne pouvais pas comprendre ce que cela signifie et comment résoudre ce problème. De toute façon, le projet ne se développerait pas - dans le meilleur des cas, une erreur de l'éditeur de liens m'indiquerait qu'il ne trouve pas Pods-something.a


OK, alors à mi-chemin de l’écriture de cette question, j’ai compris moi-même (yay caoutchouc esquive). Voici la solution pour les prochaines générations:

Pour l’essentiel, vous devez ajouter une dépendance explicite à la cible Pods à votre schéma d’application.

Pour ce faire, procédez comme suit: modifiez votre schéma d’application, accédez à la section Construire, puis ajoutez la cible Pods au - dessus de la cible de votre application. Vous devriez voir quelque chose comme ça:

Et ça va juste marcher.

En ce qui concerne les avertissements CocoaPods lors de l’ pod install , vous devez utiliser les fichiers xcconfig générés par le CP pour chacune de vos configurations Xcode. La façon dont vous le faites est:

  • rechercher les fichiers .xcconfig dans les pods Pods/Target Support Files
  • glissez-les et déposez-les dans le groupe "Pods" de votre projet Xcode (ajoutez uniquement une référence. Ne copiez pas dans la cible ni ajoutez à la construction)
  • Cliquez sur le projet dans le navigateur de projet et sélectionnez le projet lui-même (pas une des cibles). Allez dans Info et sous Configurations, définissez le droit .xcconfigs sur chaque configuration et cible dans la colonne "Basé sur le fichier de configuration".

Vous aurez également besoin de quelque chose comme ceci dans votre Podfile pour permettre à CocoaPod de savoir quelles configurations de votre Xcode sont "debug" (non optimisées), lesquelles sont "libérées":

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 vraiment lié à CocoaPods, mais s'il vous arrive d'avoir d'autres dépendances (de sous-projets) autres que CP, vous devrez également faire deux choses:

  • ajouter des dépendances explicites sur la cible du sous-projet (comme sur la capture d'écran ci-dessus)
  • renommer / ajouter des configurations dans votre sous-projet afin qu'elles soient identiques à votre projet principal. (Sinon, Xcode ne sait simplement pas quelle configuration utiliser avec votre sous-projet)




cocoapods