ぶべ
「やって」しか打ってないのにApp Store申請が完了した全記録
2026年03月28日
見出しはありません
要約
iOSアプリを初めてApp Storeに出した。
開発は全部AI。コードは1行も書いてない。見てすらいない。
で、今回はその先。App Storeへの申請作業すら、AIにブラウザを操作させて全自動でやらせた話。
自分がやったのは「やって」「アップして」「10枚作って」をチャットに打ち込むことだけ。そしたらClaudeが勝手にブラウザのボタンを押し、フォームを埋め、スクリーンショットを生成し、審査に提出してくれた。
ただし、一発でうまくいったわけじゃない。むしろトラブルだらけだった。その全過程を書く。
最初の一言がこれ。
Claudeはまずプロジェクトの構成を確認して、Expo(React Native)のプロジェクトだと判断。EAS(Expo Application Services)を使った申請フローを提案してきた。
eas.jsonがなかったので、セットアップから。eas submitまで完了した後、「次はなにをすれば」と聞いたら、App Store Connectでの設定項目を一覧で返してきた。
ここまでは普通のAIアシスタント。
ここから異次元に入る。
Chrome DevTools MCPを通じて、Claudeが実際にブラウザを操作し始めた。App Store Connectのページを開いて、スナップショットを取得し、フォームのUID(要素ID)を特定して、一つずつ入力していく。
連絡先: 姓・名、電話番号、メールアドレス
概要: アプリの説明文を自動生成して入力
キーワード: 「猫,ねこ,ネコ,AI,翻訳,気持ち,写真,カメラ,ペット,猫語」
著作権: © 2026 bubekichi inc.
サポートURL: 自動生成したNotionページのURL
レビュー用メモ: 「本アプリはGoogleアカウントによるサインインのみに対応しています...」
さらに、プライバシーポリシーが必要だと言うので「Notionのページに適当に作って」と返したら、Notion MCPを使ってプライバシーポリシーページを自動生成してくれた。収集データ、利用目的、第三者提供、ユーザーの権利、お問い合わせ先まで全部入り。
App Storeのスクリーンショットが必要だと言われた。「ストアに乗るやつ?」と聞き返したら、そうだと。
Gemini APIで10枚のストア用スクリーンショットをAI生成した。
メイン画面 — 猫の写真と吹き出し「今日もいい天気だにゃ〜」
カメラ画面 — 「写真を撮るだけ」
ギャラリー — 「猫アルバムを作ろう」
AI分析 — 「AIが性格も分析」
寝顔翻訳 — 「寝顔も翻訳できる」
共有機能 — 「かわいく共有しよう」
複数猫 — 「複数の猫もOK」
子猫 — 「子猫の気持ちも」
不機嫌猫 — 「表情から気持ちを読み取る」
ヒーロー — 「猫の気持ち、わかります」
5枚ずつ並列生成して、全部で2分くらい。パステルカラーの背景にiPhoneモックアップ、日本語のキャッチコピー付き。クオリティは正直、かなり良い。
生成された画像は1536x2752px。App Storeの要件は1284x2778px。
sipsコマンドでリサイズして解決...と思ったら、DPIが300になっていた。
App Store Connectにアップロードしたら、10枚全部が赤枠のエラー表示。「フォーマットが正しくないスクリーンショットが少なくとも1つあります」。
sipsでDPIを変更しようとしたが、PNGのDPIはsipsでは変わらないことが判明。PillowをインストールしてPythonで72 DPIに変換。ようやく解決。
「ビルドを追加」ボタンを押すとダイアログが出るが、ラジオボタンがクリックできない。
Chrome DevToolsのclick操作がタイムアウトする。evaluate_scriptでJavaScriptを直接実行してinput[type="radio"]を探してクリック。最終的にradios[0].click()で解決。
App Store Connectのモーダルダイアログは、a11yツリーとDOMの構造がズレていて、通常のUI操作では要素にアクセスできないケースがあった。
テキストボックスに概要を入力。保存ボタンを押す。リロードすると概要が空に戻っている。
何度やっても同じ。App Store ConnectはReactベースのSPAで、DOMのvalueを直接変更してもReactの内部状態が更新されない。
最終的にObject.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').setを使ってネイティブのsetterを呼び出し、inputイベントをdispatchすることで解決。
「アプリプライバシー」ページで、データ収集方法の設定が必要だった。
3つのデータタイプ(メールアドレス、写真またはビデオ、ユーザID)それぞれについて:
使用目的の選択(6つのチェックボックスから選択)
個人情報との関連付け(はい/いいえ)
トラッキングの定義説明(次へ×2)
トラッキング目的の使用(はい/いいえ)
保存
これを3回繰り返す。計15回以上のダイアログ操作。しかもラジオボタンやチェックボックスの多くが通常のclickでは反応せず、毎回evaluate_scriptでJavaScriptを直接実行。
年齢制限の設定も多段階ウィザードだった。
ステップ1:機能(ペアレンタルコントロール、無制限Webアクセス、ユーザ生成コンテンツ等)
ステップ2:成人向けテーマ
ステップ3:医療/ウェルネス
ステップ4〜7:性的内容、暴力、ギャンブル等
猫アプリなので全部「なし」「いいえ」。JavaScriptで一括選択して自動で次へ進む処理を書いて突破。
iPhone用10枚をアップロードして「審査用に追加」を押したら、「13インチのiPadディスプレイのスクリーンショットをアップロードする必要があります」。
app.jsonでsupportsTablet: trueにしていたので、iPad用スクリーンショットも必須だった。
急遽iPad用(2048x2732px)のスクリーンショットをGeminiで1枚生成。Pillowでリサイズ・DPI調整してアップロード。
審査提出しようとするたびに新しいエラーが出てくる。
「価格セクションで価格を選択する必要があります」→ 価格ページで$0.00(無料)を設定
「アプリのプライマリカテゴリを選択する必要があります」→ エンターテインメント / 写真・ビデオを設定
「コンテンツの配信権に関する情報を設定する必要があります」→ 「いいえ」を選択
全部Claudeがブラウザ操作で解決していった。
全エラーを潰して「審査用に追加」→「審査へ提出」。
画面に表示された文字:
1.0 審査待ち
完了。
EAS Build(production)の実行
eas submit でApp Store Connectへバイナリ提出
eas.jsonにascAppIdを追加
Notion MCPでプライバシーポリシーページを自動生成
Gemini APIでiPhone用10枚 + iPad用1枚のスクリーンショットを生成
1284x2778px / 72 DPIへのリサイズ・変換
App Store Connectのフォーム全入力
スクリーンショット計21枚のアップロード
ビルドの選択・追加
プライバシーポリシーURL設定
データ収集方法の設定(3タイプ×5ステップ)
年齢制限指定(7ステップ)
カテゴリ・価格・配信権の設定
「審査へ提出」の実行
「app storeに申請だして」
連絡先情報を伝えた(名前、電話番号、メール)
「10枚作って」
「やって」(複数回)
達成感がまるで得られない。
今回、自分がやったのはdeveloper programのクレカ決済だけ。
あとはひたすら「なにやればいいの」「やって」を交互に打ってたらClaudeが完了させていた。
しかもClaudeは失敗しまくっていた。概要が保存されない、DPIが合わない、iPadスクリーンショットが足りない、ダイアログのボタンが押せない。
しかし、Claudeがそんな試行錯誤を繰り返していたのも、僕は知らなかった。
これがソフトウェア開発の現在地。。
コメント
まだコメントはありません。