CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-05-03中級

Claude Code × Fastlane で iOS/Android 自動デプロイパイプラインを0から構築する

Claude Code と Fastlane を組み合わせてiOS・Androidアプリのリリース作業を完全自動化する方法を解説。Appfile・Fastfile の設計から証明書管理、App Store Connect API 連携まで動作するコード付きで紹介します。

Fastlane2iOS24Android6Claude Code197自動デプロイCI/CD18App Store7

Fastlane を設定し終わったはずなのに、いざリリース日に fastlane beta を叩くと証明書エラーで止まる——そんな経験、一度はありませんでしょうか。私自身、複数のアプリを個人で運用する中で、Fastlane の設定ファイルが少し複雑なアプリになった瞬間に迷子になった経験があります。

Claude Code と Fastlane を組み合わせると、この「設定が崩れたときの復旧」が大幅に楽になります。Claude Code は Fastfile の構文を理解した上で修正案を提示し、fastlane env の出力を読んでどの環境変数が不足しているかを自分で判断します。今回は、iOS と Android 両対応のデプロイパイプラインを Claude Code の力を借りて構築する手順をご紹介します。

Fastlane × Claude Code の役割分担

まず「Fastlane に何をさせて、Claude Code には何をさせるか」を整理しておきましょう。

Fastlane が担当する領域:

  • ビルド・署名・アーカイブの実行(xcodebuild / gradle のラッパー)
  • App Store Connect / Google Play Developer Console への自動アップロード
  • スクリーンショット自動生成(snapshot / screengrab
  • 証明書・プロビジョニングプロファイルの管理(match

Claude Code が担当する領域:

  • Fastfile の雛形生成と既存設定の読み解き
  • エラーメッセージの診断と Fastfile 修正案の提示
  • 環境変数の不足・型ミスの検出
  • App Store Connect API キーの設定確認と Appfile の最適化

Claude Code は「Fastlane の詳細を知っている開発パートナー」として機能します。自分ではなかなか読み込む気になれない Fastlane の公式ドキュメントを、必要な部分だけかいつまんで教えてくれる存在です。

前提環境の確認

作業を始める前に、以下が揃っているか確認してください。

  • Xcode 26 / Android Studio Meerkat 以降
  • Ruby 3.2 以上(ruby --version で確認)
  • Fastlane 2.225.0 以上(fastlane --version で確認)
  • App Store Connect API キー(.p8 ファイル + Key ID + Issuer ID)
  • Google Play サービスアカウント JSON(Android の場合)

Fastlane がインストールされていない場合、Claude Code に bundle init からの初期設定を任せるのが最も簡単です。

# プロジェクトルートで実行
claude "このiOSプロジェクトにFastlaneをセットアップしてください。
Ruby bundlerを使い、Gemfileも作成してください。
App Store Connect APIキーは .env ファイルで管理する方針にしてください"

このプロンプト1つで、Claude Code は Gemfilefastlane/Appfilefastlane/Fastfile の雛形を生成し、.env.example に必要な環境変数をリストアップしてくれます。

Fastfile の設計:iOS 編

以下は Claude Code が生成した Fastfile の典型例です。App Store Connect API を使った署名レスのアップロードが肝心なポイントです。

# fastlane/Fastfile(iOS)
default_platform(:ios)
 
platform :ios do
  before_all do
    # .env から環境変数を読み込み(dotenv gem 使用)
    Dotenv.load(".env")
  end
 
  desc "開発環境用ビルドを TestFlight にアップロード"
  lane :beta do
    # App Store Connect API 認証(証明書ファイル不要)
    app_store_connect_api_key(
      key_id: ENV["ASC_KEY_ID"],
      issuer_id: ENV["ASC_ISSUER_ID"],
      key_content: ENV["ASC_KEY_CONTENT"],  # .p8 の内容を base64 エンコードした文字列
      is_key_content_base64: true
    )
 
    # match で証明書を同期(Git リポジトリから取得)
    match(type: "appstore", readonly: true)
 
    # ビルド番号をインクリメント
    increment_build_number(
      build_number: latest_testflight_build_number + 1
    )
 
    # ビルドとアーカイブ
    build_app(
      scheme: ENV["SCHEME_NAME"],
      export_method: "app-store",
      output_directory: "./build",
      output_name: "MyApp.ipa"
    )
 
    # TestFlight にアップロード
    upload_to_testflight(
      skip_waiting_for_build_processing: true,  # 処理完了を待たずに終了
      changelog: "自動デプロイ: #{Time.now.strftime('%Y-%m-%d %H:%M')}"
    )
  end
 
  desc "本番リリース(App Store 審査提出)"
  lane :release do
    beta  # beta レーンを再利用してビルド
    upload_to_app_store(
      submit_for_review: true,
      automatic_release: false,  # 審査通過後も手動で公開
      force: true                # スクリーンショット再アップロードをスキップ
    )
  end
end

ここで重要なのが is_key_content_base64: true の指定です。.p8 ファイルを直接パスで指定する方法もありますが、CI 環境では環境変数でバイナリを渡す方が安全です。.p8 の中身を base64 エンコードする方法は次のコマンドで確認できます。

# .p8 ファイルの内容を base64 エンコード(1行で出力)
base64 -i AuthKey_XXXXXXXXXX.p8 | tr -d '\n'

Fastfile の設計:Android 編

Android の場合は Google Play API とキーストアの管理が中心になります。

# fastlane/Fastfile(Android追記)
platform :android do
  desc "内部テストトラックにアップロード"
  lane :beta do
    gradle(
      task: "bundle",
      build_type: "Release",
      project_dir: "android/",
      properties: {
        "android.injected.signing.store.file" => ENV["KEYSTORE_PATH"],
        "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"],
        "android.injected.signing.key.alias" => ENV["KEY_ALIAS"],
        "android.injected.signing.key.password" => ENV["KEY_PASSWORD"]
      }
    )
 
    upload_to_play_store(
      track: "internal",
      aab: "android/app/build/outputs/bundle/release/app-release.aab",
      json_key: ENV["GOOGLE_PLAY_JSON_KEY_PATH"]
    )
  end
end

キーストアのパスワードを環境変数で渡す設計にすることで、keystore.properties ファイルをリポジトリに含める必要がなくなります。

Claude Code を使ったデバッグの実際

Fastlane で最もつまずくのが証明書・プロビジョニング周りのエラーです。実際に私が遭遇したエラーのデバッグを Claude Code に任せた例を紹介します。

# エラーの例
[!] Your account already has a valid certificate for this
    bundle identifier stored locally. However, the fastlane
    provisioning profile was regenerated.

このエラーをターミナルにコピーして Claude Code に貼ると、「match(force_for_new_devices: true) を追加する」か「match(readonly: false) で証明書を強制再生成する」の2択を文脈付きで提案してくれます。どちらを選ぶべきかの理由も説明してくれるので、Fastlane の内部挙動を学びながら問題解決できます。

# Claude Code への質問例(ターミナルから直接)
claude "fastlaneのbetaレーンを実行したら以下のエラーが出ました。
どう修正すればよいですか?
 
[エラーの内容をここにペースト]
 
現在のFastfileの内容は以下です:
[Fastfileの内容をここにペースト]"

コードと文脈を一緒に渡すことで、一般論ではなくこのプロジェクト固有の解決策を提案してくれます。

.env ファイルの設計と秘密情報の管理

# .env.example(リポジトリにコミットするテンプレート)
# App Store Connect API
ASC_KEY_ID=YOUR_KEY_ID
ASC_ISSUER_ID=YOUR_ISSUER_ID
ASC_KEY_CONTENT=BASE64_ENCODED_P8_CONTENT
 
# アプリ設定
SCHEME_NAME=MyApp
BUNDLE_ID=com.example.myapp
 
# Android キーストア
KEYSTORE_PATH=/path/to/release.keystore
KEYSTORE_PASSWORD=YOUR_KEYSTORE_PASSWORD
KEY_ALIAS=release
KEY_PASSWORD=YOUR_KEY_PASSWORD
 
# Google Play
GOOGLE_PLAY_JSON_KEY_PATH=/path/to/service-account.json

.env 自体は .gitignore に追加し、.env.example だけをコミットします。この設計を Claude Code に最初から指示すると、生成される Fastfile も最初から ENV[] 参照で書いてくれます。

まずは fastlane beta を1回走らせてみましょう

環境が整ったら、まず手元のターミナルから bundle exec fastlane beta を実行してみてください。途中でエラーが出たら、その出力を丸ごと Claude Code に渡すのが最も効率的なデバッグ方法です。Fastlane の設定は「最初の1回を通す」ことが最大の山で、一度通ってしまえばその後は安定して動き続けます。

iOS 開発の証明書まわりをもっと深く理解したい場合は Claude Code × App Store Connect API: iOS/Androidアプリ完全自動リリースパイプライン構築ガイド も参考にしてみてください。テスト自動化と組み合わせるなら Claude Code で作る iOS テスト自動化基盤 も合わせてご覧いただけると、リリースまでのパイプライン全体像が見えてきます。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-04-12
Claude Code × Swift/iOS 本番アプリ開発 — Xcode連携・Clean Architecture・App Store公開まで
Claude Code を Xcode と連携させ、Swift/iOS アプリを本番品質で開発する手順。CLAUDE.md 設計・SwiftUI 実装・Clean Architecture・テスト自動生成・Fastlane CI/CD による App Store 公開までを扱います。
Claude Code2026-07-08
自コードの Required Reason API 申告漏れを Claude Code で棚卸しする
PrivacyInfo.xcprivacy の理由コードは、依存ライブラリだけでなく自分のコードにも必要です。個人開発の壁紙アプリで申告漏れを見つけた経験から、Swift ソースを走査して該当 API と理由コードを突き合わせる Claude Code ワークフローをまとめます。
Claude Code2026-05-28
Claude Code × Xcode Cloud — ci_scripts と TestFlight 自動配信を 1 週間で動かすまでの実装メモ
Fastlane で長く回してきた個人アプリの CI を Xcode Cloud に移行した実装メモです。ci_scripts/ の3つのフックスクリプト、TestFlight 自動配信、dSYM アップロードまで、Claude Code との具体的なやり取りを残しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →