当我运行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 ...)这最后一步并不总是成功的。没有错误,应用程序没有出现。
发布于 2015-01-29 01:05:27
没有办法将超时时间配置为大于30。对于这个问题,30岁已经非常高了(等待系统应用程序签入)。假设设备已经启动,这不应该是一个问题。
更新:
根据更新的问题,现在很明显,设备是通过'simctl引导‘而不是用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引导‘时,请更新。
发布于 2018-02-21 12:18:30
我们一直有这些问题,直到我们把硬件升级到带有SSD驱动器的设备。类似于iPhoto..。iOS模拟器放弃了在具有经典硬盘的计算机上使用的条件。这似乎是一种方式,如何迫使开发人员购买新的硬件,即使旧的将仍然工作良好。
https://stackoverflow.com/questions/28181194
复制相似问题