2009-08-25 7 views
2

Dans XCode, comment appeler un 'script shell' qui est un script PERL qui copie les fichiers .app et .dsym dans un répertoire différent? Je veux transmettre le nom du projet et/ou le répertoire racine du projet au script. Je veux que le script soit appelé à chaque fois que je construis dans les modes de publication et de distribution, mais pas en mode débogage.Actions de fichier de copie de publication de code XCode

Merci à l'avance.

-isdi-

Répondre

5

Faites un clic droit sur votre cible et choisissez Ajouter-> Nouvelle construction Phase-> Nouvelle Exécuter le script Phase de construction.

l'intérieur de la zone de texte « Script », ajouter:

if [ ${CONFIGURATION} != "Debug" ] 
then 
    /usr/bin/perl "${PROJECT_DIR}/myperlscript.pl" "${PRODUCT_NAME}" "${PROJECT_DIR}" 
fi 

Modifier l'emplacement et le nom de myperlscript.pl être l'emplacement et le nom de votre script.

Assurez-vous de déplacer l'étape Run Script pour qu'elle soit après Link Binary With Libraries, puisque vous copiez l'application .app.

(cela peut également ajouter la balise « perl » à la question)

+0

Cool. Merci. Je ne l'ai pas tagué avec un langage car je devine que je peux substituer la partie perl de la ligne de commande pour utiliser php ou python ou quoi que ce soit d'autre. – ISDi

4

Pour toute autre personne qui se demande, vous pouvez également faire une simple copie via

[Cliquez sur le nom Scheme] -> Edit Scheme ... -> [Select Scheme] -> Exécuter "Target" -> Post-actions

et d'ajouter une commande cp. Dans mon cas, pour un test rapide et une facilité d'utilisation, j'ai voulu copier mon binaire dans le répertoire du projet afin de pouvoir traiter certains fichiers de données. J'ai utilisé ce qui suit:

cp ${TARGET_BUILD_DIR}/${TARGET_NAME} ${PROJECT_DIR}/"binaryFileName"