Fastlane: 概要、ビルド自動化と公開

著者: IT Sectr 公開日: 2026-02-13 読了時間: 10 分

Fastlane は、iOSおよびAndroid向けモバイルアプリのビルドと公開を自動化するツールです。Fastlaneはコード署名、ビルド、テスト実行、スクリーンショット作成、App Store ConnectおよびGoogle Play Consoleへのアップロードを管理します。モバイル開発におけるCI/CDのデファクトスタンダードです。

主な要点

  • Fastlaneは自動化する モバイルリリースパイプライン全体を1つのコマンドで:ビルド、テスト、署名、公開
  • Fastfile はRubyの設定ファイルで、lane(名前付き自動化シナリオ)を記述します
  • iOSとAndroidのサポート — FastlaneはXcode、Gradle、App Store Connect、Google Play、TestFlight、Firebaseと連携
  • matchとsigh — iOS開発のための証明書とプロビジョニングプロファイル管理
  • CI/CD統合 — FastlaneはGitHub Actions、GitLab CI、Bitrise、Jenkins、CircleCIに統合可能

Fastlane — 概要

Fastlane は、モバイル開発のルーチンタスク(アプリケーションのビルド、テスト実行、スクリーンショット作成、証明書管理、TestFlight/App Store/Google Playへのビルドアップロード)を自動化するオープンソースツールです。FastlaneはRubyで書かれており、gem install fastlane コマンドでRubyGems経由で配布されています。

Fastlaneは2015年にiOSツールとして登場しましたが、すぐにAndroidに拡大しました。現在では数十の アクション(組み込みコマンド)のエコシステムであり、これらを組み合わせて lane と呼ばれるシナリオを作成できます。各laneは特定のタスクを実行します。例:build_release はリリースバージョンをビルドし、deploy_beta はビルドをTestFlightにアップロードします。

FastlaneはUber、Airbnb、Snapchat、Twitter、Shopifyなどの企業で使用されています。2024年の調査によると、60%以上のiOS開発者がプロジェクトでFastlaneを使用しています。このツールはローカル実行とクラウドCIシステムとの統合の両方をサポートしており、モバイルCI/CDのデファクトスタンダードとなっています。

ruby
# Fastlaneのインストール
sudo gem install fastlane -NV

# プロジェクトでの初期化
fastlane init

初期化後、Fastlaneは3つのファイルを含む fastlane/ ディレクトリを作成します:Fastfile(シナリオ)、Appfile(アプリ設定)、Matchfile(証明書設定)。この構造はiOSとAndroidの両プラットフォームで同じです。

Fastfileとlane

Fastlaneのメイン設定ファイルは Fastfile です。プロジェクトルートの fastlane/ ディレクトリにあります。FastfileはRubyで記述されます。各 lane はアクションのシーケンスを持つ名前付きブロックです。laneはパラメータを受け取り、他のlaneを呼び出し、値を返すことができます。

ruby
# fastlane/Fastfile — iOSの例
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

各laneは fastlane ios beta または fastlane ios release コマンドで実行されます。Fastfileは変数、条件分岐、ループ、外部スクリプト呼び出しをサポートする完全なRubyファイルです。開発者は private_lane(ローカルメソッド)や他のFastfileからの import を通じてコードを再利用できます。

Fastlaneはほとんどのタスクに対して200以上の組み込み アクション を提供します。必要なアクションがない場合は、Rubyで独自のアクションを作成するか、sh("...") でシェルコマンドを呼び出すことができます。アクションはパラメータ(ビルド設定、パス、アクセストークン)を受け取り、後続のステップで使用する結果を返すことができます。

iOSビルド自動化

iOS向けFastlaneは3つの主要な問題を解決します:証明書とプロビジョニングプロファイルの管理、XcodeによるIPAビルド、App Store ConnectとTestFlightへの公開。これらの各タスクは個別のアクションでカバーされています。

match は証明書管理のためのアクションです。すべての証明書とプロビジョニングプロファイルを暗号化されたGitリポジトリに保存します。すべての開発者とCIサーバーが同じファイルセットを使用するため、競合や証明書の有効期限切れの問題がなくなります。新しいデバイスが追加されると、Matchは自動的にプロファイルを更新します。

sigh はApple Developer Portalを介してプロビジョニングプロファイルを作成およびダウンロードします。特定のタイプ(development、ad-hoc、appstore)のプロファイルを迅速に取得する必要がある場合に使用します。

gym はIPAをビルドします。Gymは xcodebuild を最適なパラメータでラップし、スキーム、設定、エクスポートオプションを自動的に選択して署名済みIPAを作成します。例:gym(scheme: "MyApp", export_method: "app-store")

pilot はTestFlightを管理します。ビルドをアップロードし、テスターを追加し、レビューステータスを追跡します。deliver はメタデータ、スクリーンショット、価格設定、バージョニングを含む完全なApp Store公開を処理します。

ruby
# iOSアプリのビルドと公開
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

App Store Connectで作業するにはアクセストークンが必要です。Fastlaneは2つの認証方法をサポートしています:App Store Connect API Key(推奨)と2要素認証付きApple IDです。APIキーは対話的なパスワード入力が不要なため、CI/CDに便利です。

アクション目的手動での相当
match証明書とプロファイルの管理Apple Developer Portal
sighプロビジョニングプロファイル作成Xcode + Developer Portal
gymIPAビルドxcodebuild + xcrun
pilotTestFlightアップロードXcode Organizer
deliverApp Store公開App Store Connect Web
scanUIテスト実行xcodebuild test

Androidビルド自動化

Androidでは、FastlaneはGradleによるビルド、APKおよびAABの署名、Google Play Consoleへのアップロード、Firebase App Distributionを自動化します。

gradle はAndroidビルドのメインアクションです。必要なタスクでGradleラッパーを呼び出します:gradle(task: "assembleRelease") またはAABの場合は gradle(task: "bundleRelease")。フラグ、環境変数、gradle.properties へのパスを渡すことができます。

supply はAPKまたはAABをGoogle Play Consoleにアップロードします。Supplyはバージョン、トラック(internal、alpha、beta、production)、リリースノート、価格設定、国別配布を管理します。例:supply(track: "beta", release_status: "completed")

screengrab はGoogle Play用のスクリーンショットを作成します。異なるデバイスと言語でアプリのスクリーンショットをキャプチャするインストルメンテーションテストを実行します。結果のスクリーンショットはsupplyを介してアップロードされます。

ruby
# Androidアプリのビルドと公開
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
アクションプラットフォーム目的手動での相当
gradleAndroidGradleによるビルド./gradlew assembleRelease
supplyAndroidGoogle PlayにアップロードGoogle Play Console Web
screengrabAndroidスクリーンショット作成手動スクリーンショット + ImageMagick
firebase_app_distributionAndroidFirebase配布Firebase Console Upload

CI/CD統合

FastlaneはCI/CDパイプラインで動作するように設計されています。非対話モード、環境変数、ビルドアーティファクトを正しく処理します。以下は人気のCIシステムとの統合例です。

GitHub Actions では、FastlaneはRubyスクリプトとして実行されます。典型的なワークフロー:RubyとFastlaneをインストールし、キーを設定し(secrets経由で証明書、APIトークン)、laneを実行します。iOSにはmacOSランナーが必要です。Androidはubuntu-latestで動作します。

GitLab CI では、Fastlaneは .gitlab-ci.yml で同様のセットアップで使用されます:依存関係をインストールし、fastlaneを実行し、アーティファクトを渡します。GitLab CIはmacOSとLinuxランナーをサポートしています。

Bitrise — モバイルアプリケーション向けの専門CI/CD — はFastlaneの組み込みサポートを持っています。Bitrise WorkflowはFastlane Stepを呼び出すか、fastlaneでカスタムスクリプトを実行できます。BitriseはCode Signingマネージャーを通じて証明書を管理します。

ruby
# 条件付きテスト実行を含むCI/CD用Fastfile
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

CI/CD統合の重要な側面はシークレットの保存です。Fastlaneはdotenvを介して .env ファイルと環境変数を使用します。iOSの場合、重要な変数は:MATCH_PASSWORDFASTLANE_APPLE_API_KEYFASTLANE_APPLE_API_KEY_ID。Androidの場合:SUPPLY_JSON_KEY_DATA — Google Playサービスアカウントの内容。

人気のFastlaneアクション

Fastlaneには200以上の組み込みアクションが含まれています。以下は、プラットフォームと目的別に最も人気のあるアクションの概要です。

アクションプラットフォーム説明
gymiOS最適化されたxcodebuildパラメータでIPAをビルド
matchiOSGit経由で証明書とプロビジョニングプロファイルを同期
pilotiOSビルドをTestFlightにアップロードしテスターを管理
deliveriOSメタデータとともにApp Storeにアプリを公開
scaniOSレポート生成を含むユニットテストとUIテストを実行
gradleAndroidGradleタスクを実行:assemble、bundle、test
supplyAndroidAPKとAABをGoogle Play Consoleにアップロード
screengrabAndroidGoogle Play用の自動スクリーンショット
firebase_app_distributionAndroidFirebase経由でビルドを配布
snapshotiOSApp Store用のシミュレーターでの自動スクリーンショット
increment_build_numberiOSXcodeプロジェクトでビルド番号を自動インクリメント
appcenter_upload両方ビルドをApp Centerにアップロード

必要なアクションを見つけるには、fastlane action [名前] コマンドを使用します。これによりドキュメント、パラメータ、例が表示されます。完全なリストはローカルで利用可能です:fastlane actions

Fastlaneは プラグイン(新しいアクションを追加するコミュニティ拡張機能)もサポートしています。プラグインは fastlane add_plugin [名前] でインストールされ、RubyGemsレジストリで利用可能です。人気プラグインの例:fastlane-plugin-versioning(バージョン管理)、fastlane-plugin-sentry(デバッグシンボルをSentryにアップロード)、fastlane-plugin-teams(Microsoft Teamsへの通知)。

よくある質問

Fastlaneとは何ですか?なぜ必要ですか?

Fastlane はモバイルアプリのビルドと公開を自動化するツールです。手動操作(ビルド、コード署名、ストアへのアップロード)を1つのコマンドに置き換えます。Fastlaneはリリース時間を数時間から数分に短縮し、公開時の人的エラーを排除します。

FastlaneはAndroidのみ、またはiOSのみで使用できますか?

はい。Fastlaneは両方のプラットフォームを独立してサポートしています。iOSにはmacOSが必要ですが、AndroidにはLinuxのみで十分です。1つのFastfileでプラットフォームごとにlaneを分けることができます:platform :ios do ... end および platform :android do ... end

FastlaneはiOS証明書をどのように管理しますか?

match アクションを通じて管理します。暗号化された証明書とプロビジョニングプロファイルをGitリポジトリに保存します。各開発者がリポジトリをクローンし、matchが MATCH_PASSWORD 変数のパスワードを使用してファイルを復号化し、キーチェーンにインストールします。これにより「自分のマシンでは動く」問題が解決されます。

FastlaneはFirebase App Distributionと連携しますか?

はい。FastlaneにはAPKとIPAをFirebase App Distributionにアップロードするための組み込みアクション firebase_app_distribution があります。テスターを追加するための firebase_app_distribution_add_testers も利用可能です。代替として、App Center用の appcenter_upload アクションもあります。

CIサーバーにFastlaneをインストールするには?

FastlaneはRubyGems経由でインストールします:gem install fastlane -NV。iOSにはmacOSとXcodeが必要です。AndroidにはLinuxまたはmacOSとJDKおよびAndroid SDKが必要です。GitHub ActionsにはRubyとFastlaneをインストールするための既製の ruby/setup-ruby アクションがあります。環境変数はCIシステムのシークレットを介して渡されます。

FastlaneとBitriseまたはJenkinsの違いは?

Fastlane はビルドと公開タスクを自動化するためのライブラリおよびCLIです。BitriseJenkins は完全なCI/CDプラットフォームです。Fastlaneはそれらの中で動作します:JenkinsはFastlaneをパイプラインステップとして実行し、Bitriseは専用のStepを介してFastlaneを呼び出します。FastlaneはCIシステムを置き換えるのではなく、モバイル固有の機能で補完します。

まとめ

  • Fastlane — iOSおよびAndroid向けモバイルアプリのビルド、テスト、公開を自動化するオープンソースツール
  • Fastfile — アクションのシーケンスを持つシナリオ(lane)を記述するRuby設定ファイル
  • match + gym + pilot — iOSの標準パイプライン:証明書管理、IPAビルド、TestFlightアップロード
  • gradle + supply — Androidの標準パイプライン:Gradleによるビルド、Google Play Consoleへのアップロード
  • CI/CD統合 — Fastlaneは環境変数を介してGitHub Actions、GitLab CI、Bitrise、Jenkins、CircleCIに統合
  • 200以上のアクション — コード署名、ビルド、テスト、スクリーンショット、公開、通知のための組み込みコマンド
  • プラグイン — コミュニティ拡張機能が新しいアクションを追加:バージョン管理、Sentry、メッセンジャー通知

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください