当我运行simctl launch
命令在iOS模拟器中启动应用程序时,应用程序可能会也可能不会出现,具体取决于iOS模拟器将其一起行动所需的时间。以下观察结果让我相信存在某种超时,但从有限的simctl
文档中可以看出,超时是什么以及如何控制它。
启动应用程序时,如果应用程序在35-90秒内没有启动,它可能无法启动(iOS模拟器进入主屏幕)。但是,如果应用程序设法在20秒内启动,它总会出现。
如果第一次启动失败,相同的应用程序,同一台机器,相同的命令通常会在第二次或第三次尝试时成功,因为无论需要“预热”这样做。
我猜测超时可能是30秒。如何将其设置为更大的值?
更新:
以下是我们确切的事件顺序:
simctl boot ...
)并等待状态更改为simctl list
中的已引导simctl uninstall ...
)simctl install ...
)simctl shutdown ...
)并等待其关闭open -a "<path to simulator> --args -CurrentDeviceUDID <device id>
)simctl launch ...
)这是最后一步并不总能成功。没有错误,应用程序就没有出现。
答案 0 :(得分:2)
无法将超时配置为高于30秒。对于我们有超时(等待系统应用程序签入)的问题,30s已经非常高了。假设设备已经启动,那应该不是问题。
<强>更新强>
根据更新的问题,现在很清楚,设备是通过'simctl boot'而不是iOS模拟器启动的。目前,如果从命令行引导设备,它仅适用于NonUI工作(例如:单元测试),因为设备配置为没有连接头。如果您尝试在此状态下启动应用程序,则会收到错误,因为系统应用程序无法响应启动请求。我怀疑你可能想要做我在Xcode 6 - Launch simulator from command line
的回答中描述的事情open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>
simctl install ...
simctl launch ...
换句话说,从第5步开始。
如果iOS模拟器已在运行,您必须从iOS模拟器GUI切换到另一台设备(或者终止该过程并使用上面的命令行参数重新启动它)。
如果在没有使用'simctl boot'的情况下发生问题,请更新。
答案 1 :(得分:0)
在我们将硬件升级到带有SSD驱动器的设备之前,我们确实遇到了这些问题。与iPhoto类似...... iOS模拟器可以在具有传统硬盘的计算机上使用。这似乎是一种方法,如何强迫开发人员购买新硬件,即使旧硬件仍能正常运行。