2009-12-14 4 views
7

J'ai un projet Xcode assez complexe (iPhone SDK), avec de nombreuses cibles - 4 bibliothèques statiques, tests unitaires, plusieurs exemples d'applications, un BuildAll qui exécute un script shell, et un Package qui exécute un autre script shell. La cible "BuildAll" crée un répertoire dans le projet avec des sous-répertoires dont le contenu est prêt pour la distribution.Exécution du script pendant le nettoyage/nettoyage de tout dans Xcode

Lorsque je clique sur "Nettoyer tout", cependant, Xcode ne sait pas nettoyer mon répertoire de distribution. Je le voudrais. Je n'arrive pas à trouver un moyen de le faire - est-ce que quelqu'un sait comment? la phase


Il se sent comme propre et propre Tout devrait vraiment être juste des cibles dans Xcode, et je devrais être en mesure d'ajouter un « Exécuter le script ». Pas à ma connaissance.

BTW, la cible "BuildAll" gère le nettoyage du répertoire Distribution, donc ce n'est pas la fin du monde pour moi. C'est juste ennuyeux que "Clean All" ne nettoie pas tout dans mon cas particulier.

Répondre

0

Vous pouvez essayer de Ajouter> Nouvelle cible ...> Script Shell cible par le contrôle-cliquant sur un cibles nœud dans les groupes & fichiers.

Puis, après un double-clic sur un nœud Exécuter le script que vous avez configuré tout-scénario de nettoyage en utilisant la variable $ action qui peut avoir des valeurs propres, installer, etc.

Et enfin, nouvellement créé La cible de script shell doit être ajoutée à la cible principale en tant que dépendance.

+1

La "cible de script de shell" est-elle différente d'une cible vide avec une "phase de construction de script de shell"? J'ai ajouté Build Phases à mes cibles d'application et vérifié la variable d'environnement $ ACTION, mais il semble que Xcode n'exécute pas du tout le script clean. – benzado

+2

Oui, il semble que les cibles et les phases de construction ont des flux de travail différents lors de la construction du projet Xcode. – Stream

+1

Cela ne fonctionne pas du tout avec "Shell Script Target". Vous aurez besoin d'une "cible externe", comme l'indique le lien suivant: http://log.yeahrightkeller.com/post/270155578/run-script-while-cleaning-in-xcode – moala

2

Vous pouvez ajouter une «cible externe» qui effectue le nettoyage dans un script externe et ajouter cette cible en tant que dépendance de l'une de vos cibles de bibliothèque statiques. Créez la cible et faites-la glisser sous l'une de vos cibles de bibliothèque statique. Recherchez l'action à l'aide de la variable d'environnement $ ACTION dans le script.

+0

Est-ce que c'est toujours à jour? Je ne peux pas trouver une option "Cible externe" en utilisant Xcode 6 –

+1

manquant d'informations ... quel est ce $ ACTION env var? Est-ce que cela vous dit quelle phase de construction vous utilisez? Je ne connaissais pas de phases de construction ont été exécutées lors du nettoyage ... –

Questions connexes