Fastlaneとは——モバイルアプリビルドの自動化ツール

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

FastlaneはiOSおよびAndroidアプリのビルド、テスト、公開を自動化するオープンソースツールです。コード署名、ビルド、ストアへのアップロードのために10数のコマンドを手動で実行する代わりに、開発者はFastfileに全プロセスを記述し、卒のコマンドで実行します。Fastlane Docs, 2025によると、このツールは世界中で150万以上のプロジェクトで使用されています。Fastlaneは、App Store Connect、Google Play Console、およびコード署名システムを扱うユーティリティを統合しています。

ポイント

  • Fastlane — iOSおよびAndroidのビルドとデプロイのためのOpen Source自動化ツール
  • Actions — App Store、Google Play、署名、テストのための組み込みコマンド
  • Lanes — Fastfile内でactionsを連掉する自動化シナリオ
  • Match — iOS用証明書プロビジョニングプロファイル管理システム
  • ツール — scanテスト, gymビルド, deliverアップロード, snapshotスクリーンショット

Fastlaneとは何か、どのようにモバイルビルドを自動化するか

Fastlaneは、Rubyで書かれMITライセンスで配布されるモバイルビルド自動化ツールです。モバイル開発者の常來任務——アプリのビルド、テスト実行、スクリーンショット作成、コード署名、App StoreやGoogle Playへのバイナリアップロードを自動化します。15〜20の手動コマンドの代わりに、開発者はシナリオ名を指定した卒のfastlaneコマンドを実行するだけです。

Fastlaneは、Xcodeのユーティリティ(xcodebuild、xcrun)およびAndroid SDK(gradlew、apksigner、bundletool)のラッパーとして動作し、両プラットフォームに統一インターフェースを提供します。これは、同じアプリのiOSとAndroidバージョンをメンテナンスするチームにとって特に価値があります——同じFastfileで両プラットフォームのビルドをパラメータの小さな違いだけで記述できます。

GitHubによると、Fastlaneは39,000以上のスターを持ち、モバイル開発における自動化の標準となっています。このツールはコミュニティとGoogleがメンテナンスしており、AndroidアプリをGoogle Play Consoleに配信する推奨方法としてFirebaseに統合されています。

Fastlaneのアーキテクチャ: Actions、Lanes、ツール

Fastlaneのアーキテクチャは3つのレベルで構築されています: actions(基本コマンド)、lanes(シナリオ)、およびツール(専門ユーティリティ)。ActionsはFastlaneの個々の機能で、それぞれが特定の動作を実行します: スクリーンショット作成、IPAビルド、TestFlightへのアップロード。Lanesは複数のactionsをFastfileに記述された順序シナリオに組み合わせます。

Fastlane Actions

ActionsはFastlaneの構造ブロックです。各actionはパラメータを受け取り、1つのタスクを実行します。例えば、gym actionはiOSアプリをビルドし、scanはテストを実行し、pilotはビルドをTestFlightにアップロードします。Fastlaneには200以上の組み込みactionsがあり、各actionのドキュメントはfastlane action [名前]コマンドで利用できます。

組み込みactionsで不十分な場合、開発者はRubyでcustom actionを作成し、Fastfileに組み込むことができます。Custom actionsはFastlaneプラグインを通じて配布され、Rubygemsに公開され、プロジェクトルーツのFastfilePluginファイルを通じてインストールされます。

Lanesとその組み合わせ

Laneは、複数のactionsを論理的な順序に組み合わせた名前付き自動化シナリオです。Laneは他のライン(private lanes)を呼び出し、パラメータを渡し、エラーを処理できます。これにより、シナリオの階層構造を構築できます: 基本ビルドライン、デプロイライン、完全なCI/CDサイクルライン。

Fastlaneの主要ツール: scan, gym, match, deliver

Fastlaneには、モバイル自動化の特定の任務を解決する専門ツールが用意されています。これらのツールは、lanes内のactionとして、またはコマンドラインから直接実行できます。iOSおよびAndroidのCI/CDの主要なニーズをカバーする4つの主要ツールを見ていきましょう。

ツール用途コマンド
scaniOSシミュレータでのUnitテストおよびUIテストの実行fastlane scan
gymiOS用IPAまたはAPPファイルのビルドfastlane gym
matchGitを介した証明書とプロビジョニングプロファイルの同期fastlane match
deliverApp Store Connectへのバイナリとメタデータのアップロードfastlane deliver
snapshot異なるデバイスでのスクリーンショットの自動生成fastlane snapshot

ScanはXcodeテストの実行を簡潔にし、適切なシミュレータを自動選択し、レポートをフォーマットします。Gymは最適なコンパイルフラグでアプリをビルドし、異なるビルドタイプ(development、adhoc、appstore)に対するexportOptions.plistをサポートします。Deliverでは、バイナリだけでなく、スクリーンショット、説明文、バージョン、価格を卒のメタデータファイルでアップロードできます。

Matchツールは別注です——チーム内のiOS証明書の保管と同期の問題を解決します。Matchは証明書とプロビジョニングプロファイルをGitリポジトリに暗号化して保管し、開発者はfastlane matchを実行するだけで自動取得できます。これにより、各作業環境の手動設定が不要になります。

Snapshot: スクリーンショット生成

Snapshotは、異なるデバイスおよび言語でモバイルアプリのスクリーンショットを自動作成するツールです。SnapshotはiOSシミュレータでUIテストを実行し、テストの各ステップで画面をキャプチャします。結果はfastlane/screenshotsディレクトリに保存され、deliverを通じてApp Store Connectにアップロードできます。

AndroidではscreengrabがAndroidエミュレータで同様の機能を提供します。両ツールともローカライゼーションをサポートしており、各言語のスクリーンショットが作成されるため、多言語アプリストア用の素材を簡単に準備できます。

iOSアプリへのFastlane設定

iOSプロジェクトでは、FastlaneはGemfile(fastlane gemのインストール)とfastlaneディレクトリのFastfileを通じて設定します。初期設定はfastlane initコマンドで実行され、基本ディレクトリ構造を作成し、App Store Connectのデータを設問し、主要なlanesを含むFastfileテンプレートを生成します。

iOSの場合、最初に実行すべき主要コマンドはfastlane matchです。証明書とプロビジョニングプロファイルを取得した後、Fastlaneでアプリのビルド(gym)、テスト実行(scan)、バイナリアップロード(pilotまたはdeliver)が可能になります。

ruby
# iOSアプリ用Fastfile
default_platform(:ios)

lane :build do
  cocoapods
  scan(scheme: 'App', devices: ['iPhone 15'])
  gym(scheme: 'App', export_method: 'app-store')
end

lane :deploy do
  match(type: 'appstore')
  build
  pilot(skip_waiting_for_build_processing: true)
  slack(message: '新バージョンがTestFlightにアップロードされました')
end

TestFlightを使用する場合は、pilot actionを使います——IPAをアップロードし、テストャーを管理します。Fastlaneはupload_to_testflight(pilotのシノニム)をサポートし、Appleがビルドを処理するまでの待ち時間(5〜30分)を自動処理します。

AndroidアプリへのFastlane設定

Androidプロジェクトでは、Fastlaneは同様に設定されますが、Xcodeツールの代わりにGradleとAndroid SDKが使用されます。Android用FastlaneはAPKおよびAABのビルド、apksignerまたはjarsignerによる署名、インスツルメンテッドテストの実行、Supply actionを通じたGoogle Play Consoleへのアップロードをサポートしています。

主な違いは、Androidビルドでは、matchを通じた証明書管理が不要なことです(Androidの署名は別途保管されるKeystoreで管理されます)。Android用Fastlaneはgradle actionを使って任意のGradleタスクを実行し、supply actionを使ってGoogle Playと連携します。

ruby
# Androidアプリ用Fastfile
default_platform(:android)

lane :build do
  gradle(task: 'clean assembleRelease')
  gradle(task: 'testReleaseUnitTest')
end

lane :deploy do
  build
  supply(
    track: 'internal',
    aab: 'app/build/outputs/bundle/release/app-release.aab'
  )
end

Google Play Consoleを使用するには、Google Play APIへのアクセスを持つGoogle Cloudサービスアカウントが必要です。Fastlaneは、SUPPLY_JSON_KEY環境変数またはsupply actionのjson_keyパラメータを通じてサービスアカウントのJSONキーを受け付けます。公開トラックは、internal、alpha、beta、productionから選択できます。

FastlaneとCI/CDシステムの統合

Fastlaneは、Rubyスクリプトを実行できる任意のCI/CDシステムと統合できます: Jenkins、Travis CI、GitHub Actions、GitLab CI、Bitrise、CircleCI。統合は、fastlane gemをインストールし、パイプラインのスクリプトステージでfastlane [lane_name]コマンドを実行するだけです。

CI/CDでは、機密データを保管する環境変数の設定が重要です: MATCH_PASSWORD(証明書暗号化パスワード)、FASTLANE_USER(Apple ID)、FASTLANE_PASSWORD(Apple IDパスワード)。Travis CIでは環境変数がtravis encryptで暗号化され、GitHub ActionsではリポジトリのSecretsを通じて管理されます。

推奨される方法は、CI/CDでfastlane matchをreadonlyフラグ付きで使用し、証明書リポジトリへの意外な変更を防ぐことです。Androidでは、Base64エンコードされ環境変数に保存されたKeystoreを使用し、before_installステージで復号して一時ファイルに保存します。

Fastlane Match: 証明書とプロファイル管理

Fastlane Matchは、iOS証明書とプロビジョニングプロファイルの管理を自動化するツールで、チームにとって最も価値のあるFastlane機能の一つです。Matchは暗号化されたGitリポジトリを作成し(または既存のものを使用し)、すべての証明書とプロファイルを保管し、開発者とCI/CDサーバー間で同期します。

Matchは5つのプロファイルタイプをサポートしています: developmentadhocappstoreenterprisedeveloper_id。各タイプはリポジトリ内の独立したディレクトリに保管されます。fastlane match developmentコマンドは開発証明書をローカルマシンにインストールし、fastlane match appstoreはCIビルド用のApp Storeプロファイルをインストールします。

ruby
# FastfileでのMatchの使用
lane :setup_signing do
  match(
    type: 'appstore',
    readonly: true,
    git_branch: 'main'
  )
end

lane :update_profiles do
  match(
    type: 'development',
    force: true,
    app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
  )
end

Matchのセキュリティは、Gitコミット前にすべてのファイルを暗号化することで確保されます。暗号化パスワードはMATCH_PASSWORD環境変数で設定され、チーム全員で共有される必要があります。MatchはOpenSSLを使用して暗号化を行い、パスワードをリポジトリ内に明文で保管しません。

よくある質問

モバイル開発におけるFastlaneとは何ですか?

FastlaneはiOSおよびAndroidアプリ用のOpen Source自動化ツールです。卒の構成ファイルFastfileおよび組み込みツールセットを通じて、ビルド、テスト、コード署名、App StoreやGoogle Playへの配信を自動化します。

Fastlaneにはどんなツールが含まれていますか?

Fastlaneの主要ツール: scan(テスト)、gym(iOSビルド)、match(証明書)、deliver(App Store)、pilot(TestFlight)、snapshot(スクリーンショット)、supply(Google Play)、frameit(スクリーンショットのフレーム)。各ツールは、lane内のactionまたはコマンドラインから利用できます。

アプリにFastlaneを設定するには?

gem fastlaneをインストールし、プロジェクトルーツでfastlane initを実行します。Fastfileにビルド(gym)やテスト(scan)のlanesを設定します。iOSの場合はMatchを設定し、デプロイラインにはpilotまたはdeliverを追加します。

AndroidアプリにFastlaneを設定するには?

fastlane initをパッケージ名を指定して実行します。gradle actionを使ってGradleタスク(assembleRelease、testReleaseUnitTest)を実行します。Keystoreを環境変数で設定し、supply actionを使ってAABまたはAPKをGoogle Play Consoleの必要なトラックにアップロードします。

FastlaneをCI/CDシステムと統合するには?

CI/CDサーバーにgem fastlaneをインストールし、パイプラインのスクリプトステージでfastlane [lane_name]コマンドを追加します。FASTLANE_USER、FASTLANE_PASSWORD、MATCH_PASSWORDをCI/CDのシークレット変数に設定します。CIでは、証明書の意外な変更を防ぐためにmatch readonlyを使用します。

まとめ

  • Fastlane — iOSおよびAndroidをサポートするモバイルビルド自動化のOpen Sourceツール
  • Actions — ビルド、テスト、署名、配信のための基本コマンド(200以上組み込み)
  • Lanes — Fastfile内で複数のactionsを順序CI/CDプロセスに組み合わせるシナリオ
  • Match — 暗号化Gitリポジトリを通じたiOS証明書管理システム
  • iOS: scanテスト、gymビルド、pilot TestFlight
  • Android: gradleビルド、supply Google Play
  • FastlaneはJenkins、Travis CI、GitHub Actionsなどと統合可能

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

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

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

こちらもお読みください