Back to Skills

ce-test-xcode

Build and test iOS apps on simulator with XcodeBuildMCP.

22,202stars1,639forksUpdated 6/29/2026

Security Assessment

Safe(100/100)
Security Score100/100

About ce-test-xcode

Ce-test-xcode builds, installs, and tests iOS apps on the simulator using the XcodeBuildMCP server, capturing screenshots and logs and verifying app behavior. It takes an optional argument for a scheme name, or "current" to use the default or last-used scheme. Prerequisites include Xcode with command-line tools, a connected XcodeBuildMCP MCP server, a valid Xcode project or workspace, and at least one available iOS Simulator. Model invocation is disabled, so it runs as an explicit command.

The workflow first verifies XcodeBuildMCP is connected by calling its list_simulators tool, and stops with installation guidance if it is not. It then discovers projects and schemes (discover_projs, list_schemes), boots a preferred simulator such as iPhone 15 Pro by UUID, and builds the app with build_ios_sim_app, reporting specific errors on failure. On success it installs and launches the app (install_app_on_simulator, launch_app_on_simulator) and begins log capture. For each key screen it takes a descriptive screenshot, reviews rendering and content, and checks logs for crashes, exceptions, error-level messages, and failed network requests.

The skill documents a known platform limitation: simulated taps cannot trigger gesture recognizers on SwiftUI Text views with inline AttributedString links, so it prompts for a manual tap or offers xcrun simctl openurl as a fallback. It pauses for human verification on flows that require device interaction, including Sign in with Apple, push notifications, in-app purchases, camera and photos, and location, using the platform's blocking question tool such as AskUserQuestion. On test failure it documents the error with a screenshot and logs and asks whether to fix now or skip. It closes with a structured test summary table and a cleanup step that stops log capture and optionally shuts down the simulator. It also integrates with the ce-code-review workflow, which can spawn an agent to run this skill on PRs touching iOS code.

FAQ

What MCP server does this skill require?

It requires the XcodeBuildMCP MCP server to be connected. The workflow confirms availability by calling its list_simulators tool and will not proceed until XcodeBuildMCP is working, providing Homebrew and npx install instructions if it is missing.

How do I choose which scheme to test?

Pass the scheme name as the argument, or pass "current" to use the default or last-used scheme. The skill discovers projects and schemes with discover_projs and list_schemes and uses the provided argument if one is given.

Why don't taps on SwiftUI text links work in the simulator?

Simulated taps do not trigger gesture recognizers on SwiftUI Text views with inline AttributedString links because those links are not exposed as separate elements in the accessibility tree. The skill prompts you to tap manually, and can use xcrun simctl openurl to open a known target URL directly as a fallback.

When does it pause for human input?

It pauses for flows that require real device interaction, such as Sign in with Apple, push notifications, in-app purchases, camera and photos, and location, asking via the platform's blocking question tool and never silently skipping the verification.

What does it do after a test fails?

It documents the failure with a screenshot of the error state, captured console logs, and reproduction notes, then asks whether to fix now (debug, propose a fix, rebuild, and retest) or skip and continue testing other screens.

Install ce-test-xcode

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill