AgentSkillsCN

ios-device-build

将 Swift/iOS 应用程序在真机上进行构建、安装与启动。适用场景:“在真机上构建”“在 iPhone 上运行”“在设备上安装”等。通过自动化 xcodebuild → devicectl install → devicectl launch 的完整流程,实现高效便捷的真机调试与部署。

SKILL.md
--- frontmatter
name: ios-device-build
description: "Swift/iOSアプリを実機にビルド・インストール・起動する。使用タイミング: 「実機にビルドして」「iPhoneで動かして」「デバイスにインストールして」など。xcodebuild → devicectl install → devicectl launchの一連のフローを自動化。"

iOS Device Build

iOS実機へのビルド・インストール・起動を自動化するスキル。

実行フロー

Step 1: 設定確認

まず設定ファイルの存在を確認:

bash
cat ~/.claude/skills/ios-device-build/config/settings.conf 2>/dev/null || echo "NOT_FOUND"

Step 2: 設定がない場合 → ユーザーに質問

設定ファイルが存在しない、または NOT_FOUND の場合:

  1. 接続中のデバイス一覧を取得:
bash
xcrun devicectl list devices 2>/dev/null
  1. AskUserQuestion ツールを使ってユーザーに質問:

    • 「どのデバイスをデフォルトとして使用しますか?」
    • 取得したデバイス一覧から選択肢を提示
    • 選択肢に「自動検出(毎回最初のデバイスを使用)」も含める
  2. 設定ファイルを作成:

bash
mkdir -p ~/.claude/skills/ios-device-build/config
cat > ~/.claude/skills/ios-device-build/config/settings.conf << 'EOF'
# iOS Device Build - 設定ファイル
DEFAULT_DEVICE_NAME="<ユーザーが選んだデバイス名>"
DEFAULT_SCHEME=""
NOTIFY_LANGUAGE="ja"
BUILD_LOG_LINES=30
EOF

Step 3: ビルド実行

設定が確認できたら、ビルドスクリプトを実行:

bash
bash ~/.claude/skills/ios-device-build/scripts/device_build.sh <project_path> [scheme] [device_name] [bundle_id]

パラメータ

パラメータ説明デフォルト
project_pathプロジェクトのパス.(カレントディレクトリ)
schemeビルドスキーム設定ファイル → xcodeproj名から自動検出
device_nameデバイス名設定ファイル → 接続中の最初のデバイス
bundle_idバンドルIDInfo.plistから自動取得

優先順位: コマンド引数 > 設定ファイル > 自動検出

設定の変更

ユーザーが「デバイスを変更したい」「設定をリセットしたい」と言った場合:

  1. 現在の設定を表示:
bash
cat ~/.claude/skills/ios-device-build/config/settings.conf
  1. AskUserQuestion で新しい設定を確認
  2. 設定ファイルを更新

設定ファイル形式

~/.claude/skills/ios-device-build/config/settings.conf:

bash
# デフォルトのデバイス名(部分一致で検索)
# 空欄の場合は毎回自動検出
DEFAULT_DEVICE_NAME=""

# デフォルトのスキーム名(空欄で自動検出)
DEFAULT_SCHEME=""

# 完了通知の言語("ja" or "en")
NOTIFY_LANGUAGE="ja"

# ビルドログの表示行数
BUILD_LOG_LINES=30

手動実行コマンド

接続デバイス一覧

bash
xcrun devicectl list devices

ビルド

bash
xcodebuild -project <project>.xcodeproj -scheme <scheme> -destination 'id=<UDID>' build

インストール

bash
APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "<scheme>.app" -path "*/Debug-iphoneos/*" -type d | head -1)
xcrun devicectl device install app --device <UDID> "$APP_PATH"

起動

bash
xcrun devicectl device process launch --device <UDID> <bundle_id>

前提条件

  • Xcode がインストール済み
  • 有効な開発者証明書とプロビジョニングプロファイル
  • デバイスがMac に接続され、信頼済みであること
  • デバイスのロックが解除されていること

トラブルシューティング

エラー解決策
No devices foundデバイスが接続・ロック解除されているか確認
Device not found「デバイス変更したい」と言って再設定
Build failedXcodeでエラー詳細確認、証明書/プロビジョニング確認
Install failed「設定 > 一般 > VPNとデバイス管理」で開発元を信頼
Launch failedバンドルIDが正しいか確認

ファイル構成

code
~/.claude/skills/ios-device-build/
├── SKILL.md                          # このファイル
├── config/
│   ├── settings.conf                 # ユーザー設定(Claudeが生成)
│   └── settings.conf.example         # 設定例
└── scripts/
    └── device_build.sh               # メインスクリプト