ios-simulator-browser について
iOS Simulator のブラウザープレビューと SwiftUI パッケージのプレビューをアプリ内ブラウザーで確認するスキルです。シミュレーターのミラーリングを管理し、スクリーンショットで検証結果を示します。パッケージの編集は生成されたプレビュー用ホストにホットリロードできます。
主な機能
- 01アプリ内ブラウザーでシミュレーターをミラーリング
- 02SwiftUI パッケージのプレビューを起動
- 03パッケージプレビューの編集をホットリロード
- 04表示するプレビューの絞り込み
- 05QA 証跡としてスクリーンショットを取得
活用シーン
- 01iOS Simulator 上のローカルページを確認
- 02パッケージ内の SwiftUI プレビューを確認
- 03ソース編集後のプレビュー更新を検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openai/ plugins --skill ios-simulator-browserインストール後、Claude Code で/ios-simulator-browserを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlscripts/swiftui-preview-browser.mjsscripts/lib/xcode-project.mjsscripts/templates/FocusedPreviewApp.swiftFocusedPreviewHotReloadRuntime.swiftPreviewBrowserEntries.swift詳細
iOS Simulator ブラウザー
ブラウザーワークフロー
-
既存の iOS ビルド/実行ワークフロー、または
xcrun simctl list devices availableから、明示的な Simulator UDID を取得します。 -
そのシミュレーターに固定した、長時間実行するターミナルで
serve-simを起動します。起動前に、このシミュレーター用に追跡されている古いヘルパーをクリーンアップし、ターミナル終了時にヘルパーがクリーンアップされるようトラップを設定します。SIM="<simulator-udid>" cleanup_serve_sim() { npx --yes serve-sim@latest --kill "$SIM" >/dev/null 2>&1 || true } trap cleanup_serve_sim EXIT INT TERM HUP cleanup_serve_sim npx --yes serve-sim@latest "$SIM" -
serve-simが出力した正確なローカルプレビュー URL を Codex のアプリ内ブラウザーで開きます。 -
成功を報告する前に、実際のフレームが描画されていることを確認します。ページが読み込まれただけでは、シミュレーターのストリームが正常である証拠にはなりません。
- ブラウザーミラーを使用している間は、ターミナルを起動したままにします。作業が終わったらターミナルを停止し、トラップが実行されるよう終了を待ちます。
- ターミナルが消えていた場合、または正常に終了しなかった場合は、そのシミュレーター用の別のミラーを開始する前に
npx --yes serve-sim@latest --kill "$SIM"を実行します。 - スコープを指定せずに
serve-sim --killを実行しないでください。別のスレッドが別のシミュレーターミラーを所有している場合があります。
SwiftUI プレビューのワークフロー
要求されたプレビューがインポート可能な Swift パッケージにある場合は、同梱のランチャーを使用します。パッケージのマニフェストを指定し、表示するプレビューのターゲットを選択します。ランチャーは、ユーザーのソースツリー外に使い捨てのホストプロジェクトを生成し、そのホストを Simulator にインストールして起動し、パッケージの編集を監視します。
node <skill-root>/scripts/swiftui-preview-browser.mjs \
/absolute/path/to/Package.swift \
--package-target "<target>" \
--device "<simulator-udid>"
- ウォッチモードはデフォルトで有効です。Swift パッケージのソースを編集すると、ランチャーは生成された dylib を再ビルドし、アプリを再起動せずに実行中のホストへホットスワップします。
- 生成されたホストには、選択した Swift Package ターゲットで検出されたすべてのプレビューのバリエーションが、シミュレーター内のページ操作機能とともに表示されます。一部だけを表示するには、
--preview-filter <regex[, ...]>を渡します。これはStatusRowView_Previewsのような表示名やコード識別子に一致します。 - ランチャーが選択した Simulator UDID を出力したら、同じ UDID に対して
serve-simを起動し、出力された URL をアプリ内ブラウザーで開きます。
サポート範囲
- 生成されたホストを通じて、Swift Package に基づく
PreviewProviderおよび#Preview宣言をサポートします。 - プレビューを無理にサポートさせるために、ユーザーの
.xcodeproj、.xcworkspace、Package.swift、スキーム、またはビルド設定を編集しないでください。
証拠
ブラウザーまたはプレビューの QA では、シミュレーターフレームが写ったブラウザーのスクリーンショットを撮影します。ホットリロードの QA では、ランチャーの hot reloaded package preview ... in pid ... という出力も報告し、編集後に変更されたフレームを表示します。