Pregunta

Los siguientes son los pasos que me gustaría tener:

  1. iniciar xcode
  2. abrir un archivo xcodeproj específico
  3. compilar y depurarlo
  4. salga de xcode

El siguiente es mi primer intento de escribir AppleScript:

tell application "Xcode"
    tell project "iphone_manual_client"
        debug
    end tell
    close project "iphone_manual_client"
end tell

Esto solo funciona cuando xcode tiene este proyecto abierto. Me gustaría que el proyecto se abra solo cuando sea necesario.

¿Pueden los gurús de AppleScript señalarme en la dirección correcta? Gracias.

-chuan-

¿Fue útil?

Solución

Creo que logré resolverlo. El siguiente es el AppleScript:

tell application "Xcode"
    open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj"
    tell project "iphone_manual_client"
            clean
            build
            (* for some reasons, debug will hang even the debug process has completed. 
               The try block is created to suppress the AppleEvent timeout error 
             *)
            try
                debug
            end try
    end tell
    quit
end tell

La ruta debe estar en formato de ": " en lugar de " / " ;. El único problema ahora es que después de que la consola de depuración ha hecho su trabajo, AppleScript parece "colgarse". como si esperara que algo sucediera. Necesito investigar más sobre AppleScript para saber qué hay de malo en el script.

Otros consejos

No estoy seguro acerca de AppleScript, pero puede compilarlo desde la línea de comandos, sin abrir xcode ide, así:

xcodebuild -configuration Debug -target WhatATool -project WhatATool.xcodeproj

Donde la configuración es una opción obvia, target es el nombre en la lista Target de xcode y el nombre del proyecto al final.

Hay una utilidad de línea de comandos llamada xcodebuild (página de manual aquí ) que puede funcionar mejor para lo que desea lograr.

Dado que la depuración puede llevar una cantidad de tiempo arbitraria, probablemente desee un " con tiempo de espera de segundos " / " fin del tiempo de espera " bloquear alrededor del mensaje de depuración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top