Skip to main content
Appium’s XCUITest driver ends a session request with it when WebDriverAgent doesn’t start. Driver versions before 7.4.0 (March 2024) start the message with Unable to launch WebDriverAgent because of xcodebuild failure:. A report from June 2021 shows it on a real device, with nothing after xcodebuild error message::
Version 7.4.0 and later word the same failure this way on a real device:
Mobster doesn’t use Appium and never prints this line. It builds and starts the same WebDriverAgent with xcodebuild. When its build fails, Mobster for Mac shows The helper app didn't install and the fix for the error Xcode printed, and Details shows Xcode’s own lines.

Why it happens

Appium builds WebDriverAgent with xcodebuild and starts it on the device. When xcodebuild exits with a code other than 0, Appium reports xcodebuild failed with code <code>. It also counts a run as failed when a line of output contains Error Domain=, even if the exit code is 0. The line names no cause. By default Appium logs xcodebuild’s output only from the first Error Domain= line on, so the error that started it is often missing. Appium’s provisioning guide says code 65 means code signing isn’t set up correctly. Code 70 can be signing too, or an invalid xcodebuild setting such as a wrong platform version.

Fix

  1. Show xcodebuild’s output. Add "appium:showXcodeLog": true to the capabilities, start Appium with appium --log appium.log, and request the session again.
  2. Find the first error in that log:
  3. To inspect the error in Xcode, run appium driver run xcuitest open-wda. It logs the path of WebDriverAgent.xcodeproj and opens it in Xcode. Choose the WebDriverAgentRunner scheme and your iPhone, set your team under Signing & Capabilities for the WebDriverAgentRunner target, then Product › Test.
  4. Match the first error to its fix:
  5. If nothing matches, delete WebDriverAgentRunner from the iPhone, restart the phone and request the session again.

Check it worked

The Appium log shows WebDriverAgent’s session starting, and curl http://127.0.0.1:8100/status answers with "ready" set to true. 8100 is the default of appium:wdaLocalPort. Checked 5 Nov 2026 against Mobster 0.4.0. The Appium messages are from appium-xcuitest-driver 13.0.7. Back to Troubleshooting.