Xcode服务器CI Bottesting会话已退出(-1)

试图在模拟器设备上运行XcodeServer上的testing时出现错误。 testing有时会传递给一个设备,而另一个则失败,但是失败的设备并不总是相同的。 这可能发生在一个单一的会议。

日志文件错误如下:

2015-03-23 10:44:11.029 Initializing test infrastructure. 2015-03-23 10:44:11.029 Writing testing status log to /Library/Developer/XcodeServer/Integrations/Integration-7e6e54f21a2fd25cddc9df0436cb3688/Session-2015-03-23_10:44:10-tH1BD4.log. 2015-03-23 10:44:28.676 Launch session started, setting a disallow-finish-token on the run operation. 2015-03-23 10:44:30.352 Adding console adaptor for test process. 2015-03-23 10:44:39.566 Creating the connection. 2015-03-23 10:44:39.567 Listening for proxy connection request from the test bundle (all platforms) 2015-03-23 10:44:39.567 Resuming the connection. 2015-03-23 10:44:39.567 Test connection requires daemon assistance. 2015-03-23 10:44:39.568 Checking test manager availability..., will wait up to 120s 2015-03-23 10:45:05.253 testmanagerd handled session request. 2015-03-23 10:45:05.254 Waiting for test process to check in..., will wait up to 120s 2015-03-23 10:46:47.578 Test operation failure: Test session exited(-1) without checking in. 2015-03-23 10:46:47.645 _finishWithError:Error Domain=IDEUnitTestsOperationsObserverErrorDomain Code=3 "Test session exited(-1) without checking in." UserInfo=0x7f8be43e40c0 {NSLocalizedDescription=Test session exited(-1) without checking in.} didCancel: 1 

任何想法都会非常有帮助。

模拟器需要用户GUI上下文才能运行。 如果服务器是从/ Library / LaunchDaemons启动的,那么它在系统(root)上下文中运行,并且没有GUI上下文。 如果使用Atlassian Bamboo 以及Jenkins作为CI,这是一个问题。 Facebook的开发者也遇到了xctool的这个问题 。

您可能需要从用户上下文启动XcodeServer,即在〜/ Library / LaunchAgents中创build一个plist文件,并让该用户持续login。我想苹果会在安装过程中解决这个问题。

尝试在服务器上启动此命令:

 sudo /usr/sbin/DevToolsSecurity --enable 

在这个答案更多的细节