Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置Xcode`simctl launch`命令超时?_Xcode_Xcode6_Ios Simulator - Fatal编程技术网

如何配置Xcode`simctl launch`命令超时?

如何配置Xcode`simctl launch`命令超时?,xcode,xcode6,ios-simulator,Xcode,Xcode6,Ios Simulator,当我在iOS模拟器中运行simctl launch命令来启动应用程序时,该应用程序可能会启动,也可能不会启动,这取决于iOS模拟器运行所需的时间。下面的观察结果使我相信,这涉及到某种超时,但从有限的simctl文档中看不出超时是什么以及如何控制超时 启动应用程序时,如果应用程序在35-90秒内未启动,则可能无法启动(iOS模拟器将显示在主屏幕上)。然而,如果应用程序在20秒内成功启动,它总是会出现 如果第一次启动失败,同一个应用程序、同一台机器、同一个命令通常会在第二次或第三次尝试时成功,因为任

当我在iOS模拟器中运行
simctl launch
命令来启动应用程序时,该应用程序可能会启动,也可能不会启动,这取决于iOS模拟器运行所需的时间。下面的观察结果使我相信,这涉及到某种超时,但从有限的
simctl
文档中看不出超时是什么以及如何控制超时

启动应用程序时,如果应用程序在35-90秒内未启动,则可能无法启动(iOS模拟器将显示在主屏幕上)。然而,如果应用程序在20秒内成功启动,它总是会出现

如果第一次启动失败,同一个应用程序、同一台机器、同一个命令通常会在第二次或第三次尝试时成功,因为任何需要“预热”的操作都会成功

我猜超时时间大概是30秒。如何将其设置为更大的值

更新

以下是我们事件的确切顺序:

  • 如果设备已关闭,请引导它(
    simctl boot…
    ),并等待状态在
    simctl列表中更改为Booted
  • 卸载应用程序(
    simctl卸载…
  • 安装应用程序(
    simctl安装…
  • 关闭设备(
    simctl shutdown…
    )并等待其关闭
  • 启动iOS模拟器(
    open-a”--args-CurrentDeviceUDID
  • 等待设备达到启动状态
  • 启动应用程序(
    simctl启动…

  • 最后一步并不总是成功。没有错误,应用程序就是不出现。

    无法将超时配置为高于30秒。对于我们有超时的问题,30秒已经非常高了(等待系统应用程序签入)。假设设备已启动,则这不应成为问题


    更新:

    根据更新的问题,现在很明显设备是通过“simctl boot”启动的,而不是通过iOS模拟器启动的。目前,如果您从命令行启动设备,它仅可用于非UI工作(例如:单元测试)因为设备配置为没有连接头。如果您尝试在此状态下启动应用程序,您将收到一个错误,因为系统应用程序无法响应启动请求。我怀疑您可能需要执行我在对的答复中描述的操作

    open-a“iOS模拟器”--args-CurrentDeviceUDID
    simctl安装。。。
    simctl启动。。。
    
    换句话说,从步骤5开始

    如果iOS模拟器已经在运行,您必须从iOS模拟器GUI切换到另一个设备(或者如上所述终止进程并使用命令行参数重新启动它)


    如果问题是在没有使用“simctl引导”的情况下发生的,请更新。

    在我们使用SSD驱动器将硬件升级到设备之前,我们一直存在这些问题。与iPhoto类似,iOS模拟器可以在具有经典硬盘驱动器的计算机上使用。这似乎是迫使开发人员购买新硬件的一种方法,即使是你gh旧的模拟器仍能正常工作。

    定义“iOS模拟器”以使其动作协调一致“。另外,请更详细地说明您的用户案例以及您所遇到的确切错误。@JeremyHuddlestonSequoia,感谢您对超时的确切回答!我补充了我们启动模拟器的步骤,有什么遗漏吗?是的,这就是遗漏的信息。看看我的最新答案。嗯,我有一个用户在2012年的Mac Mini上(8Gb内存,机器上没有其他东西),他经常会达到这个极限。我们的代码检查将在尝试启动应用程序之前等待设备状态启动。还有什么我们需要等待的吗?好吧,我们在步骤1-4中所做的只是更新应用程序,所以这听起来不应该有什么区别,但是我会将这些步骤移到步骤5之后,并让您知道是否有任何更改。再次感谢!最重要的是,通过重启解决了这个问题。想想看吧无论如何,感谢您的帮助和确认30秒超时。
    open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>
    simctl install ...
    simctl launch ...