11
votes

It looks like Teamcity agent (TC version is 9.0 EAP) can't run iOS Simulator via testing shell script.

I am using Build Step: Command Line, which running Custom Script and passing params to it. Teamcity agent was launched on Mac OS X Yosemite 10.10 by using shell script ../bin/mac.launchd.sh.

Error from Build Log:

[12:33:24][Step 2/2] 2014-11-20 11:33:25.421 xcodebuild[28083:289783]  iPhoneSimulator: Timed out waiting 120 seconds for simulator to boot, current state is 1.
[12:33:24][Step 2/2] 
[12:33:24][Step 2/2] Testing failed:
[12:33:24][Step 2/2] Test target app-tests encountered an error (Timed out waiting 120 seconds for simulator to boot, current state is 1. If you believe this error represents a bug, please attach the log file at /var/folders/sz/1lfcb1354xggcnd04_9j5kc40000gp/T/com.apple.dt.XCTest-status/Session-2014-11-20_11:31:25-P1Pjwd.log)
[12:33:24][Step 2/2] ** TEST FAILED **

My shell script for testing:

xcodebuild \
    -sdk iphonesimulator8.1 \
    -destination "name=iPad Air,OS=8.1" \
    -configuration Debug \
    -project "$PROJECTPATH" \
    -scheme app-tests \
    CONFIGURATION_BUILD_DIR="$BUILDPATH" \
    clean test \
    | xcpretty -tc -r junit --output "$BUILDPATH/junit.xml"

I also tried solution from this question but it didn't helped me.

3
When I am using Build Step: Xcode Project I receive the same error: iPhoneSimulator: Could not launch simulator: -10810. Timed out waiting 120 seconds for simulator to boot, current state is 1. ** TEST FAILED **sig
I opened discussion on JetBrains Forum: devnet.jetbrains.com/message/5529292#5529292sig
My experience is that the agent must be started through a real desktop session (i.e. not via SSH, and I guess starting up via launchd could be similar to SSH). Otherwise, the interaction with the iOS Simulator won't work no matter what.Leo

3 Answers

0
votes

This has been answered in the comments, and also here is a link to apple forums talking about it, AFAIK, its still the case that this isn't possible until apple changes it

https://devforums.apple.com/message/1040016#1040016

0
votes

In case someone still faces this error, you can set your desired timeout in the capabilities using simulatorStartupTimeout.

In java:

DesiredCapabilities caps = new DesiredCapabilities();
...
caps.setCapability("simulatorStartupTimeout", 5 * 60 * 1000); // 5mn
...

See https://github.com/appium/appium-xcuitest-driver#simulator

-2
votes

It can happen that your custom scripts are taking too long to finish. I was able to replicate this issue by adding a custom script in build phase to sleep for 5000 seconds.