2014-09-25 6 views
87

Voglio lanciare il simulatore iPhone dalla riga di comando.Xcode 6 - Avvia il simulatore dalla riga di comando

fino ad ora ho usato il seguente comando

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SimulateDevice

-SimulateDevice viene usato per lanciare un tipo di dispositivo specifico

Ora con Xcode 6 il percorso e l'applicazione è stata modificata per

/Applications/Xcode.app/Contents/Developer/Applications/iOS Simulator.app/Contents/MacOS/iOS Simulator opzione

ma purtroppo -SimulateDevice non sta funzionando ora. Posso avviare il simulatore, ma non ho un'opzione per specificare quale lanciare

Qualcuno ha trovato alternative con Xcode 6?

risposta

185

Ho trovato un modo per ottenere ciò che volevo.

Apple ha introdotto uno strumento interessante con Xcode 6!

simctl

simclt consente di controllare il simulatore che eseguono.

eseguire xcrun simctl per ottenere l'elenco dei sottocomandi disponibili. Un sacco di nuove opzioni con cui giocare.

Ora, per fare quello che volevo, qui è il comando per lanciare il simulatore:

xcrun instruments -w "iPhone 5 (8.0 Simulator)"

-w è quello di fornire un tipo di dispositivo e di recuperare l'elenco dei dispositivi disponibili.

Basta eseguire questo:

xcrun instruments -s

Dopo aver lanciato il simulatore è possibile controllarlo utilizzando simctl

Per installare la vostra applicazione:

xcrun simctl install booted <app path>

Per lanciare l'applicazione:

xcrun simctl launch booted <app identifier>

Spero che questo aiuti.

+6

è l'ID del gruppo di app – dusty

+0

Esiste documentazione ufficiale per il comando simctl? –

+0

Non che io abbia visto, tranne alcuni [noti problemi] (https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html # // apple_ref/doc/uid/TP40001051-CH4-SW1), come menzionato in esecuzione 'xcrun simctl' elencherà i comandi. Secondo me sono piuttosto auto-esplicativi. – daniellmb

8

È possibile specificare l'hardware e la versione iOS con -w flag.Il formato è

instruments -w "simulator-version" 

Per esempio:

instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1".

Otterrete le combinazioni hardvare-iOS disponibili utilizzando il comando instruments -w help.

+1

Utilizzare 'instruments -s devices' per ottenere un elenco di dispositivi. Tuttavia, una volta ottenuto il nome del dispositivo, la semplice chiamata di 'strumenti -w ' produrrà probabilmente un errore mentre gli strumenti tentano di scrivere una traccia nella directory principale dell'unità. Si consiglia di specificare un percorso per la traccia a cui scriverà correttamente. –

+0

Per elaborare il commento di @ MichaelTeper, usare '-D' per specificare una directory di output per i documenti .trace. – devios1

54

Con Xcode 6, se si vuole avere l'iOS Simulator.app avviare un dispositivo specifico quando si lancia, è possibile eseguire questo dalla riga di comando:

open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>

dove si può capire il UDID del dispositivo che si desidera avviare:

xcrun simctl list

Con Xcode 7, l'applicazione è stata ribattezzata Simulator.app, così si dovrebbe aggiornare il sopra di conseguenza per:

open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>

+0

Nella versione 6.2 beta, il comando non funziona più. Ad esempio, invece di lanciare il simulatore di iPhone 5s (dato il suo ID), ottengo il simulatore di iPad Air. –

+0

Funziona ancora per me. –

+0

Hmm, abbiamo affidabile non funziona su 3 macchine diverse. Qualche altra informazione che posso fornire per aiutare a risolvere? –

16

Per Xcode 7:

open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>

ottenere il vostro UDID simulatore di da xcrun simctl list

2

eseguire questo comando. L'app verrà riavviata seguita da modifiche. Non c'è bisogno di ricostruirlo di nuovo.

ios-sim "launch" "/Library/WebServer/Documents/testapp/build/iphone/build/Debug-iphonesimulator/test.app" "--devicetypeid" "iPad-2" "--exit"; 

Per la lista devicetypeid:

ios-sim showdevicetypes 
+8

Presumo che ciò richieda https://github.com/phonegap/ios-sim – devios1

2

Come di Xcode 7.3.1

lista dispositivo in un formato davvero NICE: ~/Library/Developer/CoreSimulator/Devices/device_set.plist

Root 
    DefaultDevices 
     com.apple.CoreSimulator.SimRuntime.iOS-8-4 
      com.apple.CoreSimulator.SimDeviceType.iPad-Retina : AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4 

Poi si desidera eseguire (apri) la tua app Simulator e assicurati che una nuova istanza dell'app sia l aunched.

L'app è qui: /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

e il formato usereste è come questo:

open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>

Quindi, se volessi lanciare il simulatore di cui sopra, lo farei Questo.

open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4

caldo maledetto! L'ho appena testato e funziona su Mac OS 10.11.6. Ora il trucco successivo è comunicare al simulatore di aprire la nostra app installata. Non sono ancora arrivato. Spero che questo ti aiuti. Grazie a https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia per la sua spiegazione dettagliata.