AIエージェントにiOSアプリのビルドからApp Store提出まで任せるmacOSアプリ「Blitz」
「Skip Xcode. Ship with AI.」がキャッチコピーのBlitzは、AIエージェントにiOS開発のライフサイクルを丸ごと委ねるためのネイティブmacOSアプリ。シミュレータの起動・操作、データベースのCRUD、スクリーンショット管理、そしてApp Store Connectへの提出まで、Claude Codeから一気通貫で実行できる。
リポジトリはblitzdotdev/blitz-mac。Apache 2.0ライセンスのオープンソースで、2026年3月10日に公開された。3月23日時点でスター781、v1.0.29まで出ている。開発ペースが異常に速い。
何ができるのか
Blitzの核はMCPサーバー。Claude Code(や他のMCPクライアント)からJSON-RPCでBlitzに指示を送り、35以上のツールを通じてiOS開発の各工程を自動化する。
graph LR
A[Claude Code] -->|stdio| B[MCP Bridge Script]
B -->|HTTP JSON-RPC| C[Blitz MCPサーバー<br/>localhost only]
C --> D[シミュレータ管理]
C --> E[デバイス操作]
C --> F[DB操作]
C --> G[App Store Connect]
C --> H[ビルド・テスト]
主要な機能カテゴリはこのあたり。
| カテゴリ | 内容 |
|---|---|
| シミュレータ管理 | 起動・シャットダウン・一覧取得。xcrun simctlのラッパーだが、AIが直接叩ける |
| デバイス操作 | シミュレータはiDB経由、実機はWebDriverAgent経由でタッチ・スワイプ・スクリーンショット取得 |
| 画面キャプチャ | ScreenCaptureKitでSimulator.appのウィンドウをキャプチャし、Metalでレンダリング |
| データベース操作 | Teenybase DBへの接続、スキーマ閲覧、CRUD操作 |
| App Store Connect | アプリ情報の管理、スクリーンショットのアップロード、審査提出、リジェクションフィードバックの取得 |
| プロジェクトセットアップ | Blitz・React Native・Swift・Flutterプロジェクトの初期構築 |
MCPサーバーのアーキテクチャ
BlitzのMCPサーバーはSwiftのactorとして実装されている。ローカルホスト上の動的ポートでHTTPサーバーを起動し、ポート番号を~/.blitz/mcp-portに書き出す。Claude Code側はブリッジスクリプト(~/.blitz/blitz-mcp-bridge.sh)を経由してstdioで接続する。
安全性を担保する仕組みとして、ツールをread-onlyとmutatingに分類している。read-onlyツール(一覧取得、状態確認など)は即座に実行されるが、mutatingツール(ビルド実行、App Store提出など)はmacOSネイティブのアラートダイアログで承認を求める。ApprovalRequestモデルにToolCategory列挙型があり、ツールごとに承認要否が定義されている。
graph TD
A[MCPToolRegistry<br/>ツール定義 35種以上] --> B[MCPToolExecutor]
B --> C{ToolCategory}
C -->|read-only| D[即座に実行]
C -->|mutating| E[ApprovalRequest生成]
E --> F[macOSアラート表示]
F -->|承認| G[実行]
F -->|拒否| H[エラー返却]
デバイス操作の二系統
AIがアプリのUIを操作する(タップ、スワイプ、画面の状態確認など)とき、対象がシミュレータか実機かで経路が分かれる。
| 対象 | 操作ツール | 仕組み |
|---|---|---|
| シミュレータ | iDB(idb CLI) | Facebookが開発したiOS自動化ツール。simctlより高レベルなUI操作が可能 |
| 実機 | WebDriverAgent | Appiumプロジェクト由来。デバイス上でHTTPサーバー(ポート8100)を起動し、REST APIでUI操作を受け付ける |
DeviceInteractionServiceがSwift actorとして統一的なインターフェースを提供し、内部でiDBクライアントかWDAクライアントにディスパッチする。
App Store Connectの自動化
v1.0.25以降、App Store Connectとの連携が本格的に入った。できることは多い。
- アプリ情報の作成・編集
- バンドルIDの設定・ガイダンス
- スクリーンショットのトラック別管理とアップロード(
screenshots_add_asset,screenshots_set_track,screenshots_save) - 価格設定
- アプリ内課金・サブスクリプションの管理(ページネーション対応、200件/ページ)
- 審査提出
- リジェクションフィードバックの取得(
get_rejection_feedback) - 提出履歴のタイムライン表示
v1.0.26ではClaude Codeのスキルとして21のApp Store Connect操作をプロジェクトの.claude/skills/に自動展開する機能が追加された。asc CLIが未インストールなら自動でインストールする。
v1.0.24でMac Appにも対応し、macOSアプリのインポート・作成・App Storeアップロードが可能になった。
セキュリティとプライバシー
テレメトリや分析を一切送信しない設計を謳っている。
- ネットワークリクエストはAppleのApp Store Connect APIとGitHubのリリース確認APIのみ
- MCPサーバーは
127.0.0.1にバインドし、外部ネットワークに公開されない - 連絡先・写真・位置情報等へのアクセスなし。画面キャプチャはシミュレータウィンドウに限定
リリースバイナリの検証手段も用意されている。GitHubリリースにSHA256SUMS.txtが含まれており、shasum -a 256 -c SHA256SUMS.txtで検証可能。ソースからビルドして比較するscripts/verify-build.shもある。CIのビルドワークフローも公開されている。
ビルドと導入
macOS 14以降、Xcode 16以降、Node.js 18以降が必要。Swift Package Managerで構成されたシングルターゲットのSwiftUIアプリで、Xcodeプロジェクトファイルは使っていない。
# クローンしてビルド
git clone https://github.com/blitzdotdev/blitz-mac.git
cd blitz-mac
swift build -c release
# .appとしてバンドル
bash scripts/bundle.sh release
open .build/Blitz.app
pkgインストーラも公式リリースで配布されており、Blitz-1.0.29.pkgをダウンロードしてダブルクリックでインストールできる。Intel Mac向けのx86_64ビルドも用意されている。インストール済みの場合はアプリ内で自動更新される。
Android / Google Play側はどうなっているのか
Blitzが「iOS開発のライフサイクル全体をAIに任せる」を実現しつつある一方で、Android側に同等のツールがあるかというと、現時点では存在しない。
以前Android MCPサーバーでエミュレータテストを自動化するで試したように、MCP経由でエミュレータ操作やスクリーンショット取得はできる。ADB経由のビルド・インストールもClaude Codeから直接叩ける。ただしこれらはあくまでバラバラのCLIツールの組み合わせであって、Blitzのように一つのアプリがMCPサーバーとして全工程を統合しているわけではない。
Google Play Console周りの自動化が特に弱い
このブログでは過去にGoogle Play周りの実装をいくつか記事にしている。サービスアカウント経由のレシート検証API、Flutter WebViewからの課金実装、Adjust管理画面とPlay Console開発者登録の同時進行セットアップ、Flutterアプリに必要なコンソール・キーファイル一覧といった具合で、Google Cloud Console、Google Play Console、Firebase Consoleと複数の管理画面を行き来しながら手作業で設定していく工程が大量にある。
BlitzがApp Store Connectの操作をMCP経由で一気通貫にしているのを見ると、Google Play Console側にこそ同じものが欲しい。サービスアカウントの作成、Play Consoleでの権限付与、課金アイテムの登録、テストトラックへのAABアップロード、段階的ロールアウトの設定。これらを毎回ブラウザのGUIでポチポチやっているのが現状だ。
既存のAndroidデプロイ自動化ツールとBlitzのカバー範囲を比較するとこうなる。
| 工程 | iOS(Blitz) | Android(既存ツール) |
|---|---|---|
| エミュレータ/シミュレータ操作 | MCP経由で完結 | Android MCPサーバー + ADB |
| ビルド | Xcode CLIをMCPから呼び出し | Gradle CLI(Claude Codeから直接実行) |
| ストアメタデータ管理 | App Store Connect API統合済み | fastlane supplyで可能だがMCP統合なし |
| スクリーンショット管理 | トラック別アップロード対応 | fastlane screengrabで取得は可能 |
| ストア提出 | 審査提出・リジェクション確認まで | fastlane supplyでアップロードまで |
| 課金アイテム管理 | App Store Connect APIで操作 | Play Developer API経由で可能だが手動セットアップが前提 |
| UI自動操作 | iDB + WebDriverAgent | Android MCPサーバー(ADB経由) |
fastlaneは長年Androidのデプロイ自動化で使われてきたツールで、supplyアクションでGoogle Play ConsoleへのAABアップロードや段階的ロールアウトができる。ただしfastlane自体はMCPサーバーではないので、AIエージェントが「スクリーンショットを撮ってストアに上げて、メタデータを更新して、審査に出して」と一連の流れを自然言語で指示するような使い方には向いていない。
Google Play Developer APIはMCPサーバー化の余地がある
Google Play Developer API v3はREST APIで、以下のエンドポイント群がある。
| API | 操作内容 |
|---|---|
| Publishing API | APK/AABのアップロード、リスティング情報の編集、トラック管理(内部テスト・クローズドテスト・オープンテスト・本番) |
| Subscriptions and In-App Products API | 課金アイテムの作成・更新・価格設定 |
| Reviews API | ユーザーレビューの取得と返信 |
| Reporting API | インストール数・クラッシュ・収益レポートのダウンロード |
認証はサービスアカウント経由のOAuth 2.0。レシート検証APIの記事で設定したのと同じサービスアカウントで、Publishing APIにもアクセスできる(Play Consoleで適切な権限を付与すれば)。つまりAPI的にはBlitzのApp Store Connect連携と同じことが技術的に可能だが、それをMCPサーバーとしてパッケージングしたツールがまだ誰も作っていない。
Blitzが2週間で29リリースというペースでiOS側を固めている今、Android版のBlitz的なツール(あるいはBlitz自身のAndroid対応)が出てくるかは気になるところ。Flutterプロジェクトのセットアップは既にBlitzのサポート対象に入っているので、クロスプラットフォーム対応への布石はある。