Je vais créer une application Mac écrite en Obj-C avec Xcode. Pour l'amour de l'argument disons qu'il aura 10 caractéristiques optionnelles. J'ai besoin d'un moyen d'activer ou de désactiver ces fonctionnalités pour créer des versions personnalisées de l'application. Ces builds seraient automatisés (probablement via le terminal Mac OS X), donc j'aurais besoin d'un moyen d'indiquer lesquelles sont activées/désactivées au moment de la construction (un fichier de configuration ou des arguments CLI seraient idéaux). Alors, quelle est la meilleure façon d'accomplir cela? J'essaye de planifier ceci avant que je commence à coder de sorte qu'il y ait une séparation appropriée dans ma base de code pour permettre à ces dispositifs d'aller et venir. Idéalement, la construction personnalisée ne contiendrait que du code compilé pour les fonctionnalités qu'elle devrait avoir. En d'autres termes, je ne veux pas toujours compiler toutes les fonctionnalités et les conditionner lors de l'exécution.Créer des constructions personnalisées d'un projet Xcode
Répondre
Vous pouvez utiliser des configurations Xcode à cette fin; pour chaque configuration, vous pouvez inclure un en-tête de préfixe différent, par exemple. Vous pouvez ensuite déclencher des compositions à partir de la ligne de commande via xcodebuild
.
Si vous préférez l'approche du fichier de configuration, vous pouvez utiliser un fichier .xcconfig à la place pour définir les paramètres de construction de Xcode.
Le Xcode Build System Guide describes ces deux approches.
utilisez #ifdef et l'indicateur -D sous les indicateurs du compilateur pour contrôler si les éléments sont compilés ou non. Vous pouvez configurer beaucoup de différentes configurations de cette façon si vous le souhaitez, et avoir juste les configurations de construction de xcode fonctionnent bien.
#include <stdio.h>
int
main (void)
{
#ifdef TEST
printf ("Test mode\n");
#endif
printf ("Running...\n");
return 0;
}
sortie 1:
$ gcc -Wall -DTEST dtest.c
$ ./a.out
Test mode
Running...
sortie 2:
$ gcc -Wall dtest.c
$ ./a.out
Running...
source: http://www.network-theory.co.uk/docs/gccintro/gccintro_34.html
- 1. Provisionnement des profils et des constructions xcode
- 2. Comment créer un nouveau projet Xcode avec des fichiers existants?
- 3. Pouvez-vous créer des règles de construction personnalisées pour XCode en fonction du type de fichier?
- 4. Création/Intégration d'un projet XCode
- 5. Comment créer un projet console/terminal C++ dans XCode?
- 6. Comment créer des fonctions personnalisées dans SQLite
- 7. créer des pages personnalisées avec jquery php
- 8. Comment créer des URL personnalisées dans cakephp
- 9. Créer des exceptions personnalisées dans Axis2
- 10. Comment créer des vues personnalisées pour AppWidgets?
- 11. Comment créer des exceptions personnalisées en Java?
- 12. Javascript Créer des barres de défilement personnalisées
- 13. Comment créer des pages personnalisées dans dasBlog?
- 14. Puis-je créer un projet Xcode à déboguer sur MacOS?
- 15. Comment créer un projet xcode pour iPhone Version allégée?
- 16. Equivalent Java des constructions .NET
- 17. Projet iPhone/iPad xCode
- 18. Structure de projet recommandée pour les constructions Flex
- 19. xcode Créer et analyser des questions connexes
- 20. Créer des applications Android en utilisant Xcode?
- 21. Projet Xcode - anciens fichiers warnings
- 22. Comment compresser un projet Xcode?
- 23. SVN pour le projet XCode
- 24. Créer des routes personnalisées et des pages de connexion
- 25. Sélection du modèle de projet xcode
- 26. Projet Xcode à Visual Studio
- 27. Dois-je dupliquer un projet xcode ou des sections #define?
- 28. Créer des chutes de QA des seules constructions sélectionnées dans CruiseControl.Net
- 29. Automatiser la création de projet Xcode
- 30. un projet XCode multiples applications iPhone
Je ne pense pas créer manuellement une configuration pour chaque combinaison est très plausible: http : //www.wolframalpha.com/input/? i = combinaisons + de + 10 I d on ne veut pas faire 1 024 configs :-) Mais je vais regarder dans l'idée du fichier .xcconfig. Merci! – macinjosh
@macinjosh Avez-vous trouvé un moyen de le faire? –