2009-07-08 7 views
1

J'essaie d'émuler la combinaison de touches X-R de Xcode dans un autre éditeur (à savoir, Vim); Je pensais que je serais en mesure de le faire avec des scripts shell & AppleScript, mais il ne semble pas fonctionner correctement:Comment créer et exécuter Xcode avec Applescript?

open -a Xcode "MyProj.xcodeproj" 
osascript -e 'tell app "Xcode"' -e 'build' -e 'launch' -e 'end tell' 

Le problème est qu'il lance l'application indépendamment du fait que les erreurs rapports Xcode. Est-ce qu'il y a un moyen de réparer ceci?

+0

double possible de [Tell AppleScript construire XCode projet] (http://stackoverflow.com/questions/1007082/tell-applescript-to-build-xcode-project) – redolent

Répondre

3

-je utiliser:

osascript -e 'tell application "Xcode" 
    activate 

    set targetProject to project of active project document 
    if (build targetProject) is equal to "Build succeeded" then 
     launch targetProject 
    end if 
end tell' 

Bien sûr, le projet doit déjà être ouvert dans Xcode pour que cela fonctionne. (Je préfèrerais ne pas coder en dur le projet actuel dans mon script)

+2

Cela ne semble plus fonctionner avec Xcode 4.6: "Xcode a une erreur: Impossible d'obtenir le document de projet actif." Bien sûr, un projet constructible est ouvert dans Xcode. –

+0

Avec XCode 5 j'obtiens "107: 126: erreur d'exécution: Xcode a une erreur: L'objet spécifié est une propriété, pas un élément." (000037) " – markshep

+3

Dans Xcode 5 remplacer" document de projet actif "par" document d'espace de travail actif " " – Ian

1

À moins que vous ne vouliez vraiment l'interface graphique Xcode, vous pouvez simplement utiliser xcodebuild au lieu de lancer et de scripter Xcode.

+1

Je sais xcodebuild, mais Je voulais que cela fonctionne dans l'interface graphique, principalement en raison de la liste d'erreurs qui vous amène à la ligne de l'erreur lorsque vous double-cliquez dessus. – Michael

0

Et pour les autres utilisateurs de TextMate, un bricolage ... une version améliorée en la combinant avec la commande 'Open project in Xcode ..' existante :

PROJECT=$(ruby -- "${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb") 
if [[ -f "${PROJECT}/project.pbxproj" ]]; then 
    open -a Xcode "${PROJECT}" 
else 
    echo "Didn't find an Xcode project file." 
    echo "You may want to set TM_XCODE_PROJECT." 
fi 


osascript -e 'tell application "Xcode" 
    activate 

    set targetProject to project of active project document 
    if (build targetProject) is equal to "Build succeeded" then 
     launch targetProject 
    end if 
end tell'