Claude-skill-registry ios-simulator-debug
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ios-simulator-debug" ~/.claude/skills/majiayu000-claude-skill-registry-ios-simulator-debug && rm -rf "$T"
manifest:
skills/data/ios-simulator-debug/SKILL.mdsource content
iOS Simulator Debug スキル
iOS SimulatorをAIで操作し、ビルド→起動→操作→スクショ→分析のデバッグループを実行する。
前提条件
必須
- macOS
- Xcode(Simulator含む)
- Node.js(npx実行用)
- Facebook IDB:
brew tap facebook/fb && brew install idb-companion
MCP設定(自動)
apple-platform-pluginを導入すると、
.mcp.jsonによりios-simulator MCPサーバーが自動で有効化される。
ワークフロー
Step 1: 要件確認
以下をユーザーに確認:
-
対象アプリ
- Xcodeプロジェクト/ワークスペースのパス
- スキーム名
- Bundle ID
-
検証内容
- 確認したい画面・機能
- 再現したいバグの手順
- 期待する動作
-
Simulator設定
- デバイス(iPhone 15, iPad等)
- OSバージョン
Step 2: ビルド&起動
# 1. Simulatorを開く(MCPツール使用可能になったら) # → open_simulator ツールを使用 # 2. アプリをビルド xcodebuild -workspace App.xcworkspace \ -scheme App \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 15' \ -derivedDataPath ./build \ build # 3. アプリをインストール # → install_app ツールで ./build/Build/Products/Debug-iphonesimulator/App.app をインストール # 4. アプリを起動 # → launch_app ツールで Bundle ID を指定して起動
Step 3: UI操作&検証ループ
現状把握 → 操作 → 結果確認 → 分析 → 次のアクション ↑ ↓ └──────────── 繰り返し ←───────────────┘
MCPツール一覧
Simulator管理
| ツール | 説明 | 使用例 |
|---|---|---|
| Simulatorアプリを起動 | 最初に実行 |
| 起動中のSimulator IDを取得 | 状態確認 |
| .app/.ipaをインストール | ビルド後 |
| Bundle IDでアプリ起動 | インストール後 |
UI検査
| ツール | 説明 | 使用例 |
|---|---|---|
| 画面全体のアクセシビリティ要素を取得 | 現状把握 |
| 特定座標の要素情報を取得 | 要素特定 |
| 圧縮スクリーンショット取得 | クイック確認 |
| フルスクリーンショット保存 | 証跡保存 |
UI操作
| ツール | 説明 | パラメータ |
|---|---|---|
| タップ | x, y座標 |
| テキスト入力 | 入力文字列 |
| スワイプ | 開始/終了座標、duration |
録画
| ツール | 説明 |
|---|---|
| 動画録画開始(H.264/HEVC) |
| 録画停止 |
デバッグパターン
パターン1: 画面遷移の確認
1. ui_describe_all で現在画面を把握 2. screenshot で初期状態を保存 3. ui_tap でボタンをタップ 4. ui_describe_all で遷移後の画面を確認 5. screenshot で結果を保存 6. 期待と比較して分析
パターン2: 入力フォームのテスト
1. ui_describe_all でフォーム要素を特定 2. ui_tap でテキストフィールドをタップ 3. ui_type でテキスト入力 4. ui_tap で送信ボタンをタップ 5. ui_describe_all で結果を確認
パターン3: スクロールコンテンツの確認
1. screenshot で現在の表示を保存 2. ui_swipe で下にスクロール 3. screenshot でスクロール後を保存 4. 必要に応じて繰り返し
パターン4: バグ再現の録画
1. record_video で録画開始 2. 一連の操作を実行 3. stop_recording で録画停止 4. 動画で再現手順を確認
アクセシビリティ検証
ui_describe_all の結果から以下をチェック:
- すべてのインタラクティブ要素にラベルがある
- 論理的なフォーカス順序
- ボタンとリンクの区別が明確
- 動的コンテンツの通知
トラブルシューティング
Simulatorが起動しない
# Simulatorをリセット xcrun simctl shutdown all xcrun simctl erase all
IDBが見つからない
# IDBをインストール brew tap facebook/fb brew install idb-companion # パスを確認 which idb
アプリがインストールできない
# 署名を確認 codesign -dv --verbose=4 App.app # Simulatorに直接インストール xcrun simctl install booted App.app
出力ディレクトリ
スクリーンショット・動画のデフォルト保存先:
~/Downloads
環境変数で変更可能:
export IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR=/path/to/output
ベストプラクティス
- 操作前に必ず現状把握:
で画面状態を確認ui_describe_all - スクショは証跡として保存: 問題発見時は
で記録screenshot - 座標はui_describe_allから取得: ハードコードせず動的に取得
- エラー時は画面を確認: 期待と異なる場合はスクショで状態確認
- 複雑な操作は録画: 再現手順を動画で残す