本文へ移動
cccskills
無料GitHub で公開

ce-test-xcode

Build and test iOS apps on simulator with XcodeBuildMCP.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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 TypeWhat 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 and verify map updates"
SwiftUI Text links"Please tap on [element description] manually — automated taps cannot trigger inline text links"

Ask the user using the platform's blocking question tool: AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex, ask_question in Antigravity CLI (agy), ask_user in Pi (requires the pi-ask-user extension). Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question:

Human Verification Needed

This test requires [flow type]. Please:
1. [Action to take on simulator]
2. [What to verify]

Did it work correctly?
1. Yes - continue testing
2. No - describe the issue

7. Handle Failures

When a test fails:

  1. Document the failure:

    • Take screenshot of error state
    • Capture console logs
    • Note reproduction steps
  2. Ask the user how to proceed:

    Test Failed: [screen/feature]
    
    Issue: [description]
    Logs: [relevant error messages]
    
    How to proceed?
    1. Fix now - debug, propose a fix, rebuild and retest
    2. Skip - continue testing other screens
    
  3. If "Fix now": investigate, propose a fix, rebuild and retest

  4. If "Skip": log as skipped, continue

8. Test Summary

After all tests complete, present a summary:

## Xcode Test Results

**Project:** [project name]
**Scheme:** [scheme name]
**Simulator:** [simulator name]

### Build: Success / Failed

### Screens Tested: [count]

| Screen | Status | Notes |
|--------|--------|-------|
| Launch | Pass | |
| Home | Pass | |
| Settings | Fail | Crash on tap |
| Profile | Skip | Requires login |

### Console Errors: [count]
- [List any errors found]

### Human Verifications: [count]
- Sign in with Apple: Confirmed
- Push notifications: Confirmed

### Failures: [count]
- Settings screen - crash on navigation

### Result: [PASS / FAIL / PARTIAL]

9. Cleanup

After testing:

  1. Call stop_log_capture with the simulator UUID
  2. Optionally call shutdown_simulator with the simulator UUID

Quick Usage Examples

# Test with default scheme
/ce-test-xcode

# Test specific scheme
/ce-test-xcode MyApp-Debug

# Test after making changes
/ce-test-xcode current

Integration with ce-code-review

When reviewing PRs that touch iOS code, the ce-code-review workflow can spawn an agent to run this skill, build on the simulator, test key screens, and check for crashes.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

Generate tiered sentence frames for academic tasks that scaffold language production across proficiency levels. Use when EAL students need structured language support for classroom discourse.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

Generate a cascading hint sequence for a problem type, revealing progressively without giving answers. Use when designing tutoring dialogues or scaffolded worksheets.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

ads

無料

When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see cro.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

Map control, influence, and concern after systems analysis. Use when students need wise agency without being made responsible for everything.

日本語の概要は準備中です。原文の説明を表示しています。

nota-america/forgecat-agent-profiles902026年9月24日 更新

nota-america のスキルをすべて見る

このスキルの問題を報告する