由於Xcode的6,你應該能夠使用simctl
做到這一點。
1)獲取可用的設備列表:
xcrun simctl list devices
1A)假設你已經安裝了jq
,你可以用它來獲得只有那些真正可用的設備:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.availability | contains("(available)")) '
1B )或甚至通過iPhone或iPad進一步過濾:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) '
2)一旦你有該設備的UDID要安裝到:
xcrun simctl install $DEVICE_UDID /path/to/your/app
2A)或者,如果你想只安裝到啓動設備:
xcrun simctl install booted /path/to/your/app
如果這真的非常方便的是,如果你希望在所有設備上運行相同的應用程序:
1)復位/刪除所有模擬器:
xcrun simctl erase all
2)打開一個仿真實例對每個測試:
open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
(Ignore the 'Booted' error and switch hardware.)
3)獲取我們要安裝到現有設備的UDID:
DEVICES=$(xcrun simctl list devices -j | jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) | select(.state == "Booted") | .udid ')
4)安裝應用程序(這必須建立爲適當的模擬器SDK):
for device in DEVICES ; do xcrun simctl install $device /path/to/app ; done
5)爲方便起見,啓動應用的每個設備上:
for device in $DEVICES ; do xcrun simctl launch $device your.product.app.id ; done
不幸的是,這似乎不再工作(我使用iOS 7.1) – thomers
對不起,我應該更具體。目錄仍然存在,文件被複制,但模擬器不會在跳板上顯示應用程序。 – thomers
@thomers它可以與iOS 7.1一起使用,您只需將此腳本放入'project_name.app'文件夾並將'6.0'重命名爲'7.1'(但它經常崩潰)。然後你從該目錄運行'installApp'。所以,如果我有我的'project.app /'裏面有一個'project'。我會'cd project.app /'並運行'./installApp project'。我也將這個評論留給未來讀者更好的文檔。 – film42