Come di Xcode 6, si dovrebbe essere in grado di utilizzare simctl
per raggiungere questo obiettivo.
1) Ottenere la lista dei dispositivi disponibili:
xcrun simctl list devices
1a) Supponendo di aver jq
installato, è possibile utilizzare per ottenere solo i dispositivi che sono effettivamente disponibili:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.availability | contains("(available)")) '
1b) O anche filtrare ulteriormente da iPhone o iPad:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) '
2) Una volta ottenuto il UDID del dispositivo che si desidera installare a:
xcrun simctl install $DEVICE_UDID /path/to/your/app
2a) o, se si desidera installare solo per il dispositivo di avvio:
xcrun simctl install booted /path/to/your/app
Dove questo diventa davvero utile è se si consiglia di eseguire la stessa applicazione su tutti i dispositivi:
1) reset/cancella tutti i simulatori:
xcrun simctl erase all
2) Aprire un'istanza Simulator per ogni prova:
open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
(Ignore the 'Booted' error and switch hardware.)
3) Ottenere UDID di dispositivi disponibili si desidera installare:
DEVICES=$(xcrun simctl list devices -j | jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) | select(.state == "Booted") | .udid ')
4) Installare l'applicazione (che deve essere costruito per il simulatore appropriata SDK):
for device in DEVICES ; do xcrun simctl install $device /path/to/app ; done
5) per comodità, lanciare l'applicazione su ogni dispositivo:
for device in $DEVICES ; do xcrun simctl launch $device your.product.app.id ; done
Purtroppo, questo non sembra funzionare più (sto usando iOS 7.1) – thomers
Spiacente, avrei dovuto essere più specifico. La directory è ancora lì, i file vengono copiati, ma il simulatore non mostra l'app sul trampolino. – thomers
@thomers funziona con iOS 7.1, devi solo mettere questo script nella cartella 'project_name.app' e rinominare' 6.0' in '7.1' (ma spesso si blocca). Quindi esegui 'installApp' da quella directory. Quindi, se ho il mio 'project.app /' con un 'progetto' dentro. Vorrei 'cd project.app /' ed eseguo './installApp project'. Sto anche lasciando questo commento come documentazione migliore per i futuri lettori. – film42