如何重置 Xcode 机器人使用的模拟器?

Posted

技术标签:

【中文标题】如何重置 Xcode 机器人使用的模拟器?【英文标题】:How do I reset the simulator used by an Xcode bot? 【发布时间】:2016-01-07 17:46:18 【问题描述】:

我正在使用的模拟器实例在持续集成运行后有时会留在inconsistent state 中,我该如何重置它?

在构建服务器上重置以普通用户帐户运行的模拟器似乎不会重置机器人使用的模拟器(在受限_xcsbuild 用户下运行。)

【问题讨论】:

【参考方案1】:

受this gist 的启发,将此脚本作为“集成前”触发器在您的 Bot 上运行:

/usr/bin/osascript -e 'tell application "ios Simulator" to quit'
/usr/bin/osascript -e 'tell application "Simulator" to quit'
/usr/bin/xcrun simctl erase all

...并欺骗雷达 24091918 将“all”作为有效参数添加到 xcrun simctl shutdown

【讨论】:

感谢有关simctl shutdown all 的建议,但我认为这对您的情况没有太大帮助。您需要记住 simctl 是 CoreSimulator 的客户端,就像 Simulator.app 一样。 simctl 并不意味着控制 Simulator.app。 我只能说,它似乎对我有用 - 从用户帐户重置模拟器不起作用,像触发器一样执行上述操作。 是的,以上将实现你的目标,但我的意思是你误解了simctl和Simulator.app之间的关系。如果您没有使用“simctl boot”,则没有理由使用“simctl shutdown”,因为当 Simulator.app 终止时设备会自动关闭。

以上是关于如何重置 Xcode 机器人使用的模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xcode 机器人在模拟器上运行 UIAutomation

从 Xcode 重置 iPad 应用程序内容和设置

iOS 模拟器总是将位置重置为“无”

Xcode 6.4 显示具有唯一 ID 的重复“模拟器”

Xcode 服务器、机器人、持续集成和模拟器上的单元测试

Xcode 7.1 模拟器在我使用时不断冻结