2014-11-06 54 views
4

我看到這個錯誤在我的TeamCity生成代理輸出:「無法運行在模擬器應用程序」,從TeamCity的生成代理

... 
[14:17:50][Step 2/2] Starting: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project Foobar/Foobar.xcodeproj -scheme foobarNightly SYMROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build OBJROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build test -sdk iphonesimulator8.1 
[14:17:50][Step 2/2] in directory: /Users/Me/buildAgent/work/e60c5dca158b2d23 
... 
[14:17:53][Step 2/2] FoobarTests (BUILD) 
[14:17:53]=== BUILD TARGET FoobarTests OF PROJECT Foobar WITH CONFIGURATION Debug === 
[14:17:53]Check dependencies 
[14:17:53]Testing failed: 
[14:17:53] Test target FoobarTests encountered an error (Unable to run app in Simulator If you believe this error represents a bug, please attach the log file at /var/folders/yy/lc1xnprn1w3g98mcy5mprm5c0000gn/T/com.apple.dt.XCTest-status/Session-2014-11-04_11:17:51-qkVM7k.log) 
[14:17:53][Step 2/2] ** TEST FAILED ** 
[14:17:54][Step 2/2] Process exited with code 65 
... 

,其中提到的日誌包含:

... 
2014-11-04 11:17:51.085 Beginning test session with Xcode 6A1052d 
2014-11-04 11:17:51.085 /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project Foobar/Foobar.xcodeproj -scheme foobarNightly SYMROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build OBJROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build test -sdk iphonesimulator8.1 
2014-11-04 11:17:51.085 Testing on device: <DVTiPhoneSimulator: 0x7fcb257b2210> { 
     SimDevice: SimDevice : iPad 2 (B694B12B-BAE3-48FD-A351-CFC5855B5D14) : state={ Booted } deviceType={ SimDeviceType : com.apple.CoreSimulator.SimDeviceType.iPad-2 } runtime={ SimRuntime : 8.1 (12B411) - com.apple.CoreSimulator.SimRuntime.iOS-8-1 } 
} 
2014-11-04 11:17:51.085 Initializing test infrastructure. 
2014-11-04 11:17:51.085 Writing testing status log to /var/folders/yy/lc1xnprn1w3g98mcy5mprm5c0000gn/T/com.apple.dt.XCTest-status/Session-2014-11-04_11:17:51-qkVM7k.log. 
2014-11-04 11:17:51.107 Creating the connection. 
2014-11-04 11:17:51.107 Listening for proxy connection request from the test bundle (all platforms) 
2014-11-04 11:17:51.107 Resuming the connection. 
2014-11-04 11:17:51.107 Test connection requires daemon assistance. 
2014-11-04 11:17:51.469 Checking test manager availability..., will wait up to 120s 
2014-11-04 11:17:52.148 testmanagerd handled session request. 
2014-11-04 11:17:52.148 Waiting for test process to launch. 
2014-11-04 11:17:53.323 Launch session started, setting a disallow-finish-token on the run operation. 
2014-11-04 11:17:53.323 Waiting for test process to check in..., will wait up to 120s 
2014-11-04 11:17:53.334 Adding console adaptor for test process. 
2014-11-04 11:17:54.012 Test operation failure: Unable to run app in Simulator 
2014-11-04 11:17:54.012 _finishWithError:Error Domain=IDEUnitTestsOperationsObserverErrorDomain Code=3 "Unable to run app in Simulator" UserInfo=0x7fcb28ddd570 {NSLocalizedDescription=Unable to run app in Simulator} didCancel: 1 
... 

如果我直接在生成代理機器上運行完全相同的命令:

$ /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project Foobar/Foobar.xcodeproj -scheme foobarNightly SYMROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build OBJROOT=/Users/Me/buildAgent/work/e60c5dca158b2d23/Foobar/build test -sdk iphonesimulator8.1 

它的工作原理。任何想法爲什麼這從TeamCity構建代理失敗?

回答

6

好吧,看起來我們已經找出了真正的問題。隨TeamCity提供的plist文件包含屬性,對於最新的Mac OS X版本,該屬性不應該存在。

問題應固定在TeamCity的9.0.4,但作爲一種解決方法,你應該把jetbrains.teamcity.BuildAgent.plist ~/Library/LaunchAgents/jetbrains.teamcity.BuildAgent.plist 並拆除屬性和值。

jetbrains.teamcity.BuildAgent.plist文件目前的變化是:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>WorkingDirectory</key> <string>/agent/home/directory</string> <key>Debug</key> <false/> <key>Label</key> <string>jetbrains.teamcity.BuildAgent</string> <key>OnDemand</key> <false/> <key>KeepAlive</key> <true/> <key>ProgramArguments</key> <array> <string>bash</string> <string>--login</string> <string>-c</string> <string>launcher/bin/TeamCityAgentService-macosx-universal-32 -c ../conf/wrapper.conf</string> </array> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>logs/launchd.err.log</string> <key>StandardOutPath</key> <string>logs/launchd.out.log</string> </dict> </plist>

5

每TeamCity的的documentation,有兩種方法可以在OS X創建構建代理守護程序:

  • 系統範圍:/Library/LaunchDaemons/jetbrains.teamcity.BuildAgent.plist
  • 用戶專用:~/Library/LaunchAgents/jetbrains.teamcity.BuildAgent.plist

原來這兩個選項都不會讓允許TeamCity構建代理啓動Xcode模擬器。

如果構建代理手動啓動後直接(不SSH)登錄到生成代理機:

$ sh buildAgent/bin/agent.sh start 

的TeamCity的生成代理將能夠啓動模擬器。要在啓動時運行此腳本,請使用Automator創建一個.apphttps://stackoverflow.com/a/6445525/429533

相關問題