从 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) 为每个测试打开一个 Simulator 实例:
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