
Ce Test Xcode
Build, install, and exercise an iOS app on the simulator via XcodeBuildMCP with logs and screenshots before you merge.
Overview
ce-test-xcode is an agent skill most often used in Ship (also Build) that builds and tests iOS apps on the simulator through XcodeBuildMCP with screenshots and logs.
Install
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill ce-test-xcodeWhat is this skill?
- Hard gate: confirm XcodeBuildMCP list_simulators works before any build steps
- Documents Homebrew and npx install paths when the MCP server is missing
- Workflow covers project/scheme discovery, simulator selection, build, install, and behavioral verification
- Captures screenshots and logs to evidence simulator runs for PR review
- disable-model-invocation: true—follow the scripted workflow rather than ad-hoc guesses
- Step 0 hard-gate: XcodeBuildMCP must respond to list_simulators before proceeding
Adoption & trust: 1.5k installs on skills.sh; 20.5k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You changed iOS code but lack a consistent agent-driven way to build on simulator, catch launch crashes, and attach proof before a PR.
Who is it for?
Indie iOS developers using Claude Code or similar agents with XcodeBuildMCP who want a gated simulator smoke test after local changes.
Skip if: Android or cross-platform projects without Xcode, physical-device-only QA, or teams without willingness to install and configure the XcodeBuildMCP server.
When should I use this skill?
After making iOS code changes, before creating a PR, or when verifying app behavior and checking for crashes on simulator.
What do I get? / Deliverables
After the workflow, the app is built and run on a chosen simulator with logs and screenshots you can cite in review or follow-up fixes.
- Successful simulator build and install
- Screenshots and runtime logs from the test run
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Ship testing because the skill’s stated triggers are pre-PR verification and crash checks on simulator. Simulator build-install-test with captured artifacts is classic mobile QA, not distribution or App Store launch prep.
Where it fits
After SwiftUI tweaks, run simulator build to confirm the new screen renders without launch failure.
Before opening a PR, capture simulator screenshots and logs showing the critical user path still works.
Attach MCP-captured log excerpts when asking an agent to summarize regressions found on simulator.
How it compares
Structured MCP-driven simulator workflow, not a replacement for full XCTest suite design or App Store Connect launch automation.
Common Questions / FAQ
Who is ce-test-xcode for?
Solo and small-team iOS builders who use agent assistants and want simulator verification wired through XcodeBuildMCP after code changes.
When should I use ce-test-xcode?
In Build after iOS UI or logic edits when you want a quick simulator pass, and in Ship before a PR when you need build proof, logs, and crash checks without shipping to TestFlight.
Is ce-test-xcode safe to install?
Check the Security Audits panel on this page; the skill drives local Xcode builds and MCP tools on your machine—review what repositories and schemes the agent selects.
SKILL.md
READMESKILL.md - Ce Test Xcode
# Xcode Test Skill Build, install, and test iOS apps on the simulator using XcodeBuildMCP. Captures screenshots, logs, and verifies app behavior. ## Prerequisites - Xcode installed with command-line tools - XcodeBuildMCP MCP server connected - Valid Xcode project or workspace - At least one iOS Simulator available ## Workflow ### 0. Verify XcodeBuildMCP is Available Check that the XcodeBuildMCP MCP server is connected by calling its `list_simulators` tool. MCP tool names vary by platform: - Claude Code: `mcp__xcodebuildmcp__list_simulators` - Other platforms: use the equivalent MCP tool call for the `XcodeBuildMCP` server's `list_simulators` method If the tool is not found or errors, inform the user they need to add the XcodeBuildMCP MCP server: ``` XcodeBuildMCP not installed Install via Homebrew: brew tap getsentry/xcodebuildmcp && brew install xcodebuildmcp Or via npx (no global install needed): npx -y xcodebuildmcp@latest mcp Then add "XcodeBuildMCP" as an MCP server in your agent configuration and restart your agent. ``` Do NOT proceed until XcodeBuildMCP is confirmed working. ### 1. Discover Project and Scheme Call XcodeBuildMCP's `discover_projs` tool to find available projects, then `list_schemes` with the project path to get available schemes. If an argument was provided, use that scheme name. If "current", use the default/last-used scheme. ### 2. Boot Simulator Call `list_simulators` to find available simulators. Boot the preferred simulator (iPhone 15 Pro recommended) using `boot_simulator` with the simulator's UUID. Wait for the simulator to be ready before proceeding. ### 3. Build the App Call `build_ios_sim_app` with the project path and scheme name. **On failure:** - Capture build errors - Report to user with specific error details **On success:** - Note the built app path for installation - Proceed to step 4 ### 4. Install and Launch 1. Call `install_app_on_simulator` with the built app path and simulator UUID 2. Call `launch_app_on_simulator` with the bundle ID and simulator UUID 3. Call `capture_sim_logs` with the simulator UUID and bundle ID to start log capture ### 5. Test Key Screens For each key screen in the app: **Take screenshot:** Call `take_screenshot` with the simulator UUID and a descriptive filename (e.g., `screen-home.png`). **Review screenshot for:** - UI elements rendered correctly - No error messages visible - Expected content displayed - Layout looks correct **Check logs for errors:** Call `get_sim_logs` with the simulator UUID. Look for: - Crashes - Exceptions - Error-level log messages - Failed network requests **Known automation limitation — SwiftUI Text links:** Simulated taps (via XcodeBuildMCP or any simulator automation tool) do not trigger gesture recognizers on SwiftUI `Text` views with inline `AttributedString` links. Taps report success but have no effect. This is a platform limitation — inline links are not exposed as separate elements in the accessibility tree. When a tap on a Text link has no visible effect, prompt the user to tap manually in the simulator. If the target URL is known, `xcrun simctl openurl <device> <URL>` can open it directly as a fallback. ### 6. Human Verification (When Required) Pause for human input when testing touches flows that require device interaction. | Flow Type | What to Ask | |-----------|-------------| | Sign in with Apple | "Please complete Sign in with Apple on the simulator" | | Push notifications | "Send a test push and confirm it appears" | | In-app purchases | "Complete a sandbox purchase" | | Camera/Photos | "Grant permissions and verify camera works" | | Location | "Allow location access a