iOSアプリを9本持っていて、それぞれのFirebase設定・バージョン管理・App Store申請・アナリティクス確認を全部自分でやっていた。これが思った以上に手間で、Claude Codeに丸投げしてみたら想定以上に動いた。
やらせたこと
Firebase の個別化
複数アプリが同一のFirebaseプロジェクトを共有していた。GoogleService-Info.plist の PROJECT_ID を見ると全部同じ。
Firebase コンソールで新しいプロジェクトを作って plist をダウンロード。Claude Codeにパスを渡したら、ファイルのコピー・Xcodeプロジェクトへの追加・Crashlytics Run Script の設定まで全部やってくれた。
Xcodeを使わずに project.pbxproj を直接編集して Run Script を追加する、というのが人間にはやりにくい作業で、Claude Codeが得意とするところだと思った。
Remote Config の移行
共有Firebaseプロジェクトに shippou_interstitial_rate のようなキーがあったが、これを各アプリ専用プロジェクトに移す必要があった。
Firebase REST API + firebase-tools.json のキャッシュトークンを使って移行できた。Firebase CLIに remoteconfig:set コマンドが廃止されていたのでRESTで直接叩く形になったが、Claude Codeがそのまま対処した。
一括バージョンアップ・申請
6本のアプリを同時にアップデートする必要があった。手作業でやると半日コース。
バージョン更新(sed)→ アーカイブ → エクスポート → アップロード → 申請
この流れをPythonとシェルスクリプトでまとめて実行。6本分が30分で終わった。
申請には App Store Connect API(reviewSubmissions フロー)を使う。古い appStoreVersionSubmissions エンドポイントは廃止済みで403が返るので注意。
Analytics の確認
Firebase Analytics のデータを毎月確認したい。GA4 Data APIを叩くためにOAuth認証を整えて(これが一番手間だった)、毎回1コマンドで全9アプリのMAU・セッション・新規ユーザーが出るようにした。
スキルに登録して、承認も不要にした
一度整えた作業は ~/.claude/commands/ にスキルファイルとして保存している。たとえば /ck-app は以下をまとめて実行する:
- GA4 APIでMAU・セッション・新規ユーザーを全アプリ分取得
- AdMob APIで収益・インプレッション・eCPMを取得
- App Store Connect APIで最新レビューを取得
/ck-app
これだけで全部出てくる。
スキルの中身はPythonスクリプトをヒアドキュメントでBashに渡す形なので、毎回「このAPIを叩いて結果をまとめて」と説明しなくていい。
さらに ~/.claude/settings.json の permissions.allow に実行パターンを登録しておくと、承認プロンプトが出なくなる。
{
"permissions": {
"allow": [
"Bash(ssh -i /path/to/key user@host*)",
"Bash(python3 << 'EOF'*)"
]
}
}
SSHコマンドやPythonスクリプトの実行で毎回「許可しますか?」と聞かれると流れが止まる。よく使うパターンはあらかじめ許可しておくと、スキルが完全に自動で流れる。
気づいたこと
「コード以外の作業」に強い。 Firebase設定、App Store申請、アナリティクス取得、Search Console確認。これらはプログラミングというより運用業務で、手作業でやると地味に時間がかかる。Claude Codeはここが得意だった。
前の会話を覚えていないが、メモリファイルで補える。 セッションをまたぐと記憶がリセットされる。ただし ~/.claude/projects/*/memory/ にメモを保存しておくと次のセッションでも引き継げる。認証情報の場所・アプリID・これまでの判断などを書いておくと「前回どこまでやったか」の確認がいらなくなる。
作業ログを残すより、コマンド化した方が使える。 一度やった作業をスキルファイルに書いておくと次回からコマンド一発で動く。「App Storeの申請状況確認して」と毎回説明するより /ck-app の方が早い。
向いていないこと
UIの確認はさすがに人間がやる必要がある。「このアニメーションの見た目どう?」という判断はできない。あとデザインの方向性も。「かっこいい感じにして」だと困る。
コード以外の判断も任せすぎると危うい。「このアプリのアップデートどうする?」に対して「バグ修正があるのでしましょう」と答えてくれるが、最終判断は自分でする。