技術 約8分で読めます

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操作が可能
実機WebDriverAgentAppiumプロジェクト由来。デバイス上で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周りの実装をいくつか記事にしている。サービスアカウント経由のレシート検証APIFlutter 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 + WebDriverAgentAndroid 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 APIAPK/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のサポート対象に入っているので、クロスプラットフォーム対応への布石はある。