7
votes

Phases de construction Xcode: Exécutez le script en arrière-plan (sans bloquer la construction)

J'aimerais pouvoir exécuter un script à l'arrière-plan (c'est-à-dire sans bloquer le processus de construction) lorsque je construit et exécutez une application iOS dans le simulateur. J'ai essayé Osascript / chemin / path / to / script et , ainsi que l'ampleur d'un script de shell distinct qui fait la même chose, mais aucun des ni n'ont travaillé; La construction s'arrête et je dois forcer cesse Xcode.

Des idées?


2 commentaires

Toute chance avec ça? J'espérais que vous venez d'ajouter & à la fin de votre commande, mais cela ne ressemble pas à cela.


Malheureusement non. Je viens de courir le script de fond quand j'en ai besoin.


3 Réponses :


1
votes

Incase Vous êtes toujours intéressé.

Ce sont les étapes que vous devez suivre: 1. Changez l'extension .sh de votre script à .command 2. Plutôt que d'appeler /path/to/script.sh Vous commencez maintenant à utiliser "Ouvrir /path/to/script.command"

C'est à peu près beaucoup.

Ceci démarrera une nouvelle fenêtre de terminal et exécutera le script que vous le souhaitez.


1 commentaires

Cela nécessite des privilèges d'accès



9
votes

J'ai eu le même problème à exécuter un script d'arrière-plan dans le cadre de la phase de construction, mais ce qui suit fonctionne dans mon cas. Le script fonctionne en arrière-plan pendant que mon application fonctionne. Apparemment, vous devez rediriger la sortie standard en plus de l'utilisation du "&". Utilisez le format suivant. (Mon script est situé dans le répertoire '~ / Desktop / Splint_Server /')

~/Desktop/splint_server/run.sh > ~/Desktop/splint_server/test 2>&1 &


2 commentaires

Si vous ne vous souciez pas de votre sortie de votre script ~ / Desktop / Splint_Server / Run.SH> / dev / null 2> & 1 & fonctionne aussi.


Ceci n'est pas correct pour xcode 8.2.1. plus, ce qui attend que tous les processus engendrés sont terminés. Vous pouvez tester cela en ajoutant SLEEP 200 & et voyez ce qui se passe.



1
votes

Vous pouvez utiliser post-actions de la construction dans le paramètre Schémas.

"Sleep 100 &" fonctionne bien


0 commentaires