Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
simonlee2 avatar

Ios Build Test

  • 2 installs
  • 1 repo stars
  • Updated July 11, 2026
  • simonlee2/claude-plugins

Builds and manages iOS/macOS apps with xcodebuild and xcrun simctl: run on simulators, record video, run tests, and reset app state.

About

Builds iOS/macOS apps and manages simulators using native Xcode CLI tools like xcodebuild and xcrun simctl, including screenshots, video recording, tests, and app-state resets. A developer uses it to script iOS builds and simulator workflows.

  • Discovers schemes and simulators via xcodebuild and simctl
  • Handles running, testing, recording, and resetting simulator apps

Ios Build Test by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #888 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Data as of Jul 27, 2026 (Skillselion catalog sync)
npx skills add https://github.com/simonlee2/claude-plugins --skill ios-build-test

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars1
Last updatedJuly 11, 2026
Repositorysimonlee2/claude-plugins

What it does

Builds and manages iOS/macOS apps with xcodebuild and xcrun simctl: run on simulators, record video, run tests, and reset app state.

Files

SKILL.mdMarkdownGitHub ↗

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

TaskCommand
List schemesxcodebuild -list
List simulatorsxcrun simctl list devices
Boot simulatorxcrun simctl boot $UDID
Buildxcodebuild -workspace X -scheme Y -destination "..." build
Install appxcrun simctl install $UDID path/to/App.app
Launch appxcrun simctl launch $UDID com.bundle.id
Uninstallxcrun simctl uninstall $UDID com.bundle.id
Screenshotxcrun simctl io $UDID screenshot file.png
Record videoxcrun simctl io $UDID recordVideo file.mp4
Run testsxcodebuild 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.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.