スキル一覧に戻る
simonlee2

ios-build-test

by simonlee2

0🍴 0📅 2026年1月20日
GitHubで見るManusで実行

SKILL.md


name: ios-build-test description: 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.

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.

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です