option
HomeHome Skill MCP Tools ce-test-xcode

Build and test iOS apps on simulator with XcodeBuildMCP.

...Expand all
11
Updated time August 27, 2026

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.

View on GitHub

Build and exercise an iOS app on a simulator, preserving screenshots, logs, human-verification results, and failures as evidence for the user.

Done:

  • A completed run reports overall PASS, FAIL, or PARTIAL plus project, scheme, simulator, build result, per-surface PASS / FAIL / SKIP, console errors, human checks, and residual failures.
  • Per-surface status is derived from evidence, not the user's routing choice. PASS requires completed passing evidence. FAIL records observed failing evidence until a completed retest replaces it. SKIP means the check has no completed outcome.
  • The overall result is FAIL while any failure remains, PARTIAL when no failure remains but a scoped check is skipped, and otherwise PASS.
  • Any failure before the launched-with-log-capture handoff stops later stages and reports an actionable setup blocker with its evidence.

Boundaries: this skill tests and reports. Diagnosis and any user-approved product fix belong to ce-debug, invoked with authority narrowed to return here without committing, pushing, or opening a PR. Keep simulator interaction within the app and flows the user placed in scope.

Run

  1. Prepare and launch. Read references/setup-and-build.md. It owns the XcodeBuildMCP availability gate, project and scheme discovery, simulator choice, build, install, launch, and log-capture start.
  2. Exercise and report. After launch, read references/test-and-report.md. It owns per-screen evidence, human-only flows, the SwiftUI inline-link automation limitation, failure routing, cleanup, and the fixed summary fields.

Do not replace either required read with remembered tool names. XcodeBuildMCP adapters differ by host, while their observable success conditions do not.

All Files

1 files
SKILL.md 6.3k
View

Install ce-test-xcode

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

Download ZIP

Clone the repository and copy the skill files to your project.

git clone https://github.com/EveryInc/compound-engineering-plugin/blob/main/skills/ce-test-xcode/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Copy Copy
Quick Setup: Copy the skill folder to .claude/skills/Claude will automatically detect and use the skill

Related Skills

office-mcp
Updated time July 13, 2026
mcpgraph
Updated time June 29, 2026
composio
Updated time June 29, 2026
connect-mcp-server
Updated time June 29, 2026
OR