smithery.ai

ios-build-test

Use when user asks to "build iOS app", "run on simulator", "test iOS", "record simulator video", "reset app", "reset onboarding", or needs Xcode builds and simulator management.

First seen Mar 31, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,537 B
  • docs SUMMARY.md 199 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

iOS Build & Test Skill

Build and manage iOS apps using native Xcode CLI tools (xcodebuild, xcrun simctl).

When to Use

  • Building iOS/macOS apps with Xcode
  • Running apps in iOS simulators
  • Managing simulator instances (boot, shutdown, list)
  • Taking screenshots or recording video
  • Running unit/UI tests
  • Resetting app state or onboarding flows

Build Workflow

1. Discover Project Structure

# List available schemes
xcodebuild -list

# For workspaces
xcodebuild -workspace App.xcworkspace -list

2. Find Available Simulators

# List all devices
xcrun simctl list devices

# Get booted simulator UDID
xcrun simctl list devices booted --json | jq -r '.devices[][] | select(.state == "Booted") | .udid'

# Find specific device type
xcrun simctl list devices available --json | jq -r '.devices[][] | select(.name | contains("iPhone 16")) | .udid' | head -1

3. Boot Simulator (if needed)

xcrun simctl boot $UDID

4. Build for Simulator

xcodebuild -workspace App.xcworkspace \
  -scheme App \
  -destination "platform=iOS Simulator,id=$UDID" \
  -derivedDataPath ./DerivedData \
  build

5. Install and Launch

# Find .app bundle
APP_PATH=$(find ./DerivedData -name "*.app" -type d | head -1)

# Install
xcrun simctl install $UDID "$APP_PATH"

# Launch (get bundle ID from Info.plist)
BUNDLE_ID=$(defaults read "$APP_PATH/Info.plist" CFBundleIdentifier)
xcrun simctl launch $UDID $BUNDLE_ID

# Launch with console output
xcrun simctl launch --console $UDID $BUNDLE_ID

Reset App State

Useful for testing onboarding flows or clean state:

# Uninstall app
xcrun simctl uninstall $UDID $BUNDLE_ID

# Reinstall and launch
xcrun simctl install $UDID "$APP_PATH"
xcrun simctl launch $UDID $BUNDLE_ID

To fully reset simulator:

xcrun simctl erase $UDID

Video Capture

Record simulator screen:

# Start recording in background
xcrun simctl io $UDID recordVideo output.mp4 &
RECORD_PID=$!

# ... perform actions ...

# Stop recording (SIGINT)
kill -2 $RECORD_PID

Screenshot:

xcrun simctl io $UDID screenshot screenshot.png

Running Tests

# Run all tests
xcodebuild test \
  -workspace App.xcworkspace \
  -scheme App \
  -destination "platform=iOS Simulator,id=$UDID"

# Run specific test class
xcodebuild test \
  -workspace App.xcworkspace \
  -scheme App \
  -destination "platform=iOS Simulator,id=$UDID" \
  -only-testing:AppTests/LoginTests

# With code coverage
xcodebuild test \
  -workspace App.xcworkspace \
  -scheme App \
  -destination "platform=iOS Simulator,id=$UDID" \
  -enableCodeCoverage YES

Tuist Projects

For projects using Tuist:

# Install dependencies and generate Xcode project
mise exec -- tuist install
mise exec -- tuist generate

# Then use standard xcodebuild commands

XcodeBuildMCP Integration

If XcodeBuildMCP tools are available, prefer those for:

  • Project discovery
  • Build operations
  • Simulator management

Fall back to CLI commands when MCP isn't available or for operations not covered by MCP tools.

Quick Reference

Task Command
List schemes xcodebuild -list
List simulators xcrun simctl list devices
Boot simulator xcrun simctl boot $UDID
Build xcodebuild -workspace X -scheme Y -destination "..." build
Install app xcrun simctl install $UDID path/to/App.app
Launch app xcrun simctl launch $UDID com.bundle.id
Uninstall xcrun simctl uninstall $UDID com.bundle.id
Screenshot xcrun simctl io $UDID screenshot file.png
Record video xcrun simctl io $UDID recordVideo file.mp4
Run tests xcodebuild test -workspace X -scheme Y -destination "..."

Common Issues

Build fails with "no scheme": Use -list to find available schemes, specify with -scheme.

Simulator not found: Ensure UDID is correct. Use xcrun simctl list devices available to find valid simulators.

App won't launch: Check bundle ID matches what's in Info.plist. Use --console flag to see launch errors.

Video recording won't stop: Use kill -2 (SIGINT), not kill -9. The recording needs graceful termination to finalize the file.

See CLI_REFERENCE.md for complete command documentation.