2 Targets - X schemes
muqaddar
Administrateur
Pour ceux qui utilisent plusieurs targets pour une application, est-ce que vous créez 1 scheme par target ?
J'ai bien vu qu'on pouvait ajouter des targets à un scheme, mais comment alors multiplier les executables et sélectionner le bon dans le menu ?
D'autre part, lors de la duplication d'un scheme, si j'ajoute un target, je ne peux pas supprimer le premier target ajouté par défaut... ?
Donc en gros, comment vous y prenez vous pour avoir sous la main 6 executables ? (2 targets fois 3 configs (debug, adhoc, distri))
Quelle est la meilleure approche ?
J'ai bien vu qu'on pouvait ajouter des targets à un scheme, mais comment alors multiplier les executables et sélectionner le bon dans le menu ?
D'autre part, lors de la duplication d'un scheme, si j'ajoute un target, je ne peux pas supprimer le premier target ajouté par défaut... ?
Donc en gros, comment vous y prenez vous pour avoir sous la main 6 executables ? (2 targets fois 3 configs (debug, adhoc, distri))
Quelle est la meilleure approche ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Du coup pas besoin de cible AdHoc et AppStore séparées.
Du coup moi j'ai un Scheme "Preprod" qui tape sur notre serveur de preprod, un Scheme "Prod" qui tape sur les serveurs de Prod.
L'action "Run" utilise la configuration "Debug - Preprod" dans le premier scheme, "Debug - Prod" dans le 2e scheme
L'action "Archive" utilise la configuration "Release - Preprod" dans le premier scheme, "Release - Prod" dans le 2e.
Au final que 2 schemes pour tous les cas Debug/Release, Prod/Preprod, Debugging/OTA/AppStore.
Oui, mais moi j'ai 2 targets pour une version Lite et une version standard. Ce sont 2 exécutables différents.
Et j'ai toujours mes 3 configs comme avant: debug, beta (adhoc), distri (release).
Donc je suis obligé d'avoir 2 targets (qui contiennent des preprocessors macros différentes).
Tu me suis ?
Oui mais c'est ce qu'explique Ali : lui il a deux targets aussi (avec des preprocessors macros différentes) pour différencier le serveur de preprod et le serveur de prod. ça correspond "en gros" à ta version lite et ta version complète.
Après, comme il te l'as dit, tu n'as besoin que de deux configs : debug et distrib. Puisque quand tu feras un Archive, l'appli ne sera pas encore signée. Tu pourras la signer après coup, depuis l'organizer, > Archives > Distribute > App Store || Ad Hoc, et à ce moment tu pourras choisir le profile pour signer ton App.
Et du coup, tu auras uniquement 2 Schemes : 1 par Target, que tu configureras comme la expliqué Ali.
Je ne sais pas si tu as résolu ton problème, personnellement pour la même question (2 targets : Lite/Full) j'ai suivi ce tutoriel (Creating Lite Versions of iPhone Games / Apps : http://www.bit-101.com/blog/?p=2098 ), les captures xcode ne sont pas à jour mais on s'en sort.
OK, j'ai tout compris ! Merci de m'avoir éclairé. /thumbsup.gif' class='bbc_emoticon' alt='' />
Dans ton cas, avec tes 2 versions Lite et Standard, ce que t'as expliqué JegnuX est en effet bien plus adapté :
- 2 targets, un "Lite" et un "Standard"
- 2 configs, une "Debug" et une "Release"
- 2 schemes, pour pouvoir lancer au choix la version Lite ou Standard (quand tu débugues dans le simulateur ou sur ton iPhone, lorsque tu lances l'Analyzer, etc)
C'est sûr que dans ton cas les "schemes" se confondent un peu avec les "Targets", puisque tes 2 targets sont 2 applications exécutables iOS que tu vas vouloir potentiellement tester, débuguer, distribuer... de façon indépendante.
Oui, c'est exactement ce que j'ai fait.
Sinon pour les MACRO, je les ai mises dans PREPROCESSOR_MACROS (de LLVM) et non dans Other Compiler FLags. Je suppose que tant que je ne change pas de compilateur, ça ne pose pas de problème.
Evidemment s'il y a un réglage PREPROCESSOR_MACROS autant l'utiliser.
J'ai beau sélectionné Distri dans mon Scheme pour la fonction "Archive", quand je demande un Product => Archive, je prends une erreur:
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 5.1'
J'avoue que là je suis un peu perplexe sur ce point, mais je pense qu'il y a une sorte de double signature : une signature du code quand tu compiles (en .app), et une signature du bundle ensuite quand tu lui demandes de créer le .ipa pour la distribution OTA (ou AppStore).
La première signature (signature du code) est faite via les réglages "Code Signing" dans les Build Settings. La seconde est faite quand tu choisis "Distribute" dans l'Organizer pour distribuer ton archive en IPA via OTA.
Enfin c'est comme ça que je le comprend.
Cela semble marcher. Un grand merci !