2011-09-24 8 views
7

J'ai trouvé plusieurs références à un paramètre de construction dans XCode appelé EXCLUDED_SOURCE_FILE_NAMES - le modèle ci-dessous indique comment cela fonctionne. Mais je ne peux pas comprendre comment utiliser cette option dans XCode (4.02).Comment utiliser EXCLUDED_SOURCE_FILE_NAMES dans XCode 4 (iOS)

"EXCLUDED_SOURCE_FILE_NAMES [sdk = iphoneos *] [arch = *]" = ...

L'objectif est d'avoir un ou plusieurs fichiers source compilent lorsque la cible est le simulateur, et un ensemble différent de la source les fichiers sont compilés lorsque la cible est un appareil iOS.

Je dois indiquer à xcode la liste des fichiers pour chaque cible. Alors, comment puis-je implémenter cela en utilisant ce paramètre? Où va XCode? Y a-t-il une documentation sur la façon de faire cela? J'ai également besoin de faire la même chose avec une lib statique. Spécifiquement - J'ai une lib statique que je veux inclure dans mon projet, mais la lib ne supporte que le bras pas i386, donc, lors de la construction pour le simulateur, j'ai besoin d'exclure ce fichier d'être lié!

Est-ce que cela peut être fait?

Répondre

9

Fondamentalement EXCLUDED_SOURCE_FILE_NAMES vont simplement supprimer ces fichiers de cette configuration de construction

Si vous souhaitez supprimer une bibliothèque statique à partir d'une configuration de construction, alors ceci est le chemin à parcourir. Pour ce faire, allez dans les "Paramètres de construction" de votre cible, puis cliquez sur le bouton "Ajouter un paramètre de construction" et ajoutez la configuration EXCLUDED_SOURCE_FILE_NAMES à votre cible.

Ensuite, vous pouvez spécifier les noms de fichiers à exclure pour chaque configuration de construction ...

Dans votre cas et puisque vous mentionner une liste de fichiers différents, alors vous devriez probablement créer 2 ensemble de faisceaux d'applications, puis exclure Donc, si vous créez un bundle nommé simulator.bundle et un bundle nommé release.bundle, vous devez exclure le fichier simulator.bundle dans la configuration Release et le release.bundle dans la configuration du simulateur ...

+6

J'ajouterais aussi, que EXCLUDED_SOURCE_FILE_NAMES en attend plusieurs ems à séparer par des espaces, et pas des virgules. c'est-à-dire "pattern1 * pattern2" est correct, alors que "pattern1 *, pattern2 *" ne fonctionnera pas. –