以编程方式解雇模拟器

时间:2014-12-29 19:40:04

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

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

有没有办法测试: 1.如果我们在app委托中处于“测试模式” 2.如果我们可以以编程方式出现,无论是出现还是在x时间之后。

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

2 个答案:

答案 0 :(得分:1)

iOS模拟器是一个mac应用程序,无法从iOS应用程序中解除。

要么使用apple脚本,要么可以在构建脚本中使用命令来执行此操作。

sudo killall "iOS Simulator"

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

答案 1 :(得分:1)

请在http://bugreport.apple.com提交错误报告,其中包含导致您尝试解决的失败原因的信息。请在当时使用sysdiagnose并包含〜/ Library / Logs / CoreSimulator / * .log

至于以编程方式运行AppleScript,您可以执行以下操作:

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

[script executeAndReturnError:&error];

但是你无法在iOS模拟器中运行的应用程序中使用它,因为它与主机隔离。