Use XcodeBuildMCP to build, run, launch, and debug the current iOS project on a booted simulator. Trigger when asked to run an iOS app, interact with the simulator UI, inspect on-screen state, capture logs/console output, or diagnose runtime behavior using XcodeBuildMCP tools.
Install
npx skills add https://github.com/dimillian/skills --skill ios-debugger-agentSKILL.md
iOS Debugger Agent
Overview
Use XcodeBuildMCP to build and run the current project scheme on a booted iOS simulator, interact with the UI, and capture logs. Prefer the MCP tools for simulator control, logs, and view inspection.
Core Workflow
Follow this sequence unless the user asks for a narrower action.
1) Discover the booted simulator
- Call
mcp__XcodeBuildMCP__list_simsand select the simulator with stateBooted. - If none are booted, ask the user to boot one (do not boot automatically unless asked).
2) Set session defaults
- Call
mcp__XcodeBuildMCP__session-set-defaultswith:projectPathorworkspacePath(whichever the repo uses)schemefor the current appsimulatorIdfrom the booted device- Optional:
configuration: "Debug",useLatestOS: true
3) Build + run (when requested)
- Call
mcp__XcodeBuildMCP__build_run_sim. - If the build fails, check the error output and retry (optionally with
preferXcodebuild: true) or escalate to the user before attempting any UI interaction. - After a successful build, verify the app launched by calling
mcp__XcodeBuildMCP__describe_uiormcp__XcodeBuildMCP__screenshotbefore proceeding to UI interaction. - If the app is already built and only launch is requested, use
mcp__XcodeBuildMCP__launch_app_sim. - If bundle id is unknown:
mcp__XcodeBuildMCP__get_sim_app_pathmcp__XcodeBuildMCP__get_app_bundle_id
UI Interaction & Debugging
Use these when asked to inspect or interact with the running app.
- Describe UI:
mcp__XcodeBuildMCP__describe_uibefore tapping or swiping. - Tap:
mcp__XcodeBuildMCP__tap(preferidorlabel; use coordinates only if needed). - Type:
mcp__XcodeBuildMCP__type_textafter focusing a field. - Gestures:
mcp__XcodeBuildMCP__gesturefor common scrolls and edge swipes. - Screenshot:
mcp__XcodeBuildMCP__screenshotfor visual confirmation.
Logs & Console Output
- Start logs:
mcp__XcodeBuildMCP__start_sim_log_capwith the app bundle id. - Stop logs:
mcp__XcodeBuildMCP__stop_sim_log_capand summarize important lines. - For console output, set
captureConsole: trueand relaunch if required.
Troubleshooting
- If build fails, ask whether to retry with
preferXcodebuild: true. - If the wrong app launches, confirm the scheme and bundle id.
- If UI elements are not hittable, re-run
describe_uiafter layout changes.
Related skills
vercel-react-native-skillsvercel-labs224KReact Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.firebase-crashlyticsfirebase117KComprehensive guide for Firebase Crashlytics, including provisioning and SDK usage. Use this skill when the user needs help setting up Crashlytics, adding crash reporting, or using the Crashlytics SDK in their application.xcode-project-setupfirebase117KSafely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).animate-expoemilkowalski70KBuild animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web a