2009-06-17 5 views
13

Di seguito sono riportati i passi che vorrei avere:Dillo AppleScript per costruire XCode Progetto

  1. lancio Xcode
  2. aprire un determinato file di xcodeproj
  3. costruire ed eseguire il debug
  4. smettere di Xcode

Quello che segue è il mio primo tentativo di scrivere AppleScript:

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

Questo funziona solo quando xcode ha aperto questo progetto. Mi piacerebbe che il progetto fosse aperto solo quando è necessario farlo.

È possibile che qualche guru di AppleScript mi ​​punti nella giusta direzione? Grazie.

-chuan-

risposta

12

Penso di essere riuscito a risolverlo. AppleScript è il seguente:

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 

Il percorso deve essere in formato ":" anziché "/". L'unico problema ora è che dopo che la console di debug ha fatto il suo lavoro, AppleScript sembra "bloccarsi" come se aspettasse che succedesse qualcosa. Ho bisogno di fare ulteriori ricerche su AppleScript per sapere cosa c'è di sbagliato con lo script.

+0

sai come controllare se il debug è già in esecuzione? Sto riscontrando un problema nelle successive esecuzioni del mio script: "Impossibile eseguire il debug dell'eseguibile dal momento che è in corso una sessione di debug" –

+0

Ciao Aaron, suppongo che un'altra opzione sia forzare XCode a chiudersi completamente e avviare nuovamente XCode prima di eseguire il nuovo set di test? Questo potrebbe aggirare il problema che stai affrontando. – chuan

+2

Sfortunatamente molte funzionalità di Xcode di AppleScript sono state interrotte con Xcode 4, incluse le funzionalità di esecuzione e di debug. Sembra che lo script sopra non funzioni più. – ThomasW

2

C'è un'utility a riga di comando chiamata xcodebuild (uomo Pagina here) che possono lavorare meglio per ciò che si vuole realizzare.

+1

Ciao pgb, xcodebuild lo costruirà solo per me. Non mi aiuta a caricare l'app su iphone e a eseguirne il debug da lì. – chuan

4

non sono sicuro su AppleScript, ma si può compilarlo da linea di comando, senza aprire IDE Xcode, in questo modo:

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

Dove configurazione è un'opzione ovvia, bersaglio è il nome nella lista di destinazione di Xcode e il nome del progetto alla fine.

+2

Ciao stefan, grazie per la vostra risposta. Questo costruirà l'applicazione. Il motivo per cui ho bisogno di usare xcode è il meccanismo di upload e di debug remoto che ha per iphone. Non esiste uno strumento da riga di comando che possa essere usato per farmi caricare la mia app per iPhone appena compilata sul dispositivo reale a parte xcode. – chuan

2

Poiché il debug può richiedere una quantità di tempo arbitraria, probabilmente si desidera un blocco "con timeout di secondi"/"timeout di fine" attorno al messaggio di debug.