【问题标题】:Programmatically dismissing simulator以编程方式关闭模拟器
【发布时间】:2015-02-25 23:57:48
【问题描述】:

我知道 Xcode 需要模拟器在运行单元测试时启动。在我的 CI 构建期间,我运行单元测试。有时模拟器会挂起测试,一旦我关闭模拟器,测试就会完成。

有没有办法测试: 1.如果我们在应用委托中处于“测试模式” 2. 如果我们能够以编程方式关闭模拟器,无论是在模拟器出现时还是在 x 时间后。

我写了一个 AppleScript 将退出模拟器...我想我可以从 Xcode 启动它。有谁知道如何在方法中启动脚本?

【问题讨论】:

  • @Alex 这似乎退出了应用程序而不是模拟器
  • 如果您确实试图完全退出模拟器,那么您的 AppleScript 方法对我来说听起来不错
  • @Alex 谢谢先生。你碰巧知道如何在我的应用程序的方法中调用脚本吗?我将它拖到我的项目中,但不确定如何以特定方法启动脚本...

标签: objective-c xcode unit-testing applescript ios-simulator


【解决方案1】:

请在http://bugreport.apple.com 提交错误报告,并提供有关导致您尝试解决的失败原因的信息。请当时进行系统诊断并包括 ~/Library/Logs/CoreSimulator/*.log

至于以编程方式运行 AppleScript,您可以:

NSString *scriptSource = @"tell application ..."
NSAppleScript *script = [[[NSAppleScript alloc] initWithSource:scriptSource] autorelease];
NSError *error = nil;

[script executeAndReturnError:&error];

但您不能在 iOS 模拟器中运行的应用程序中使用它,因为它与主机隔离。

【讨论】:

  • 实际上,NSAppleScript 似乎在 iOS 上不可用 :(
  • 即使是这样,您也无法逃脱 sim 与主机通信。
【解决方案2】:

iOS 模拟器是一个 mac 应用程序,不能从 iOS 应用程序中关闭。

您可以使用苹果脚本执行此操作,也可以使用构建脚本中的命令来执行此操作。

sudo killall "iOS Simulator"

编辑:进一步澄清,该脚本也不能从 iOS 应用程序运行。你必须从你的构建脚本中调用它。

【讨论】:

  • 谢谢先生。你知道在课堂上调用 AppleScript 吗?
猜你喜欢
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多