Skip to content

iOS provider (-p ios) not working on macOS - falls back to Chromium #365

@tyler-jewell

Description

@tyler-jewell

Description

The iOS provider introduced in v0.9.0 does not actually use iOS Safari via Appium. Commands fall back to Chromium/Playwright.

Environment

  • agent-browser: 0.9.0
  • macOS: Darwin 25.2.0 (macOS 16.2)
  • Xcode: 26.2
  • Appium: 3.2.0
  • XCUITest driver: 10.19.1
  • iOS Simulator: iPhone 17 Pro (iOS 26.1)

Steps to Reproduce

  1. Install Appium and XCUITest driver:

    npm install -g appium
    appium driver install xcuitest
  2. Build WebDriverAgent for simulator:

    cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
    xcodebuild build-for-testing -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -sdk iphonesimulator -derivedDataPath ./DerivedData CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
  3. Boot simulator and run:

    xcrun simctl boot "iPhone 17 Pro"
    agent-browser -p ios --device "iPhone 17 Pro" open http://example.com
    agent-browser -p ios eval "navigator.userAgent"

Expected Behavior

  • Safari should open on iOS Simulator
  • User agent should show Mobile Safari, e.g.:
    Mozilla/5.0 (iPhone; CPU iPhone OS 26_1 like Mac OS X) AppleWebKit/...

Actual Behavior

  • Returns immediately (no WDA startup delay)
  • User agent shows HeadlessChrome:
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
  • No Appium sessions created (verified via curl http://localhost:4723/sessions)
  • Appium is running but not being used

Additional Context

Also seeing intermittent daemon issues:

Failed to read: Resource temporarily unavailable (os error 35) (after 5 retries - daemon may be busy or unresponsive)

This may be related to #322.

Analysis

Looking at ios-manager.ts, it appears the IOSManager should connect via webdriverio to Appium, but the provider selection logic in the daemon may not be activating it correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions