Skip to main content

Fastlane(ファストレーン)

Overview

FastlaneはGoogleが開発している開発の自動化をしてくれるツール。
Fastlane は主に iOS/Android アプリのデプロイやテストの自動化に使われるツールで、RubyGems で配布されている。
例えば一般的に継続的デリバリーの仕組みを整える場合にはビルドバージョンを更新して、ビルドして、アップロードするプロセスがある。
これをfastlaneの設定ファイルを記述して実行するだけで全自動化してくれるもの。

tip

あくまでFastlaneはビルド・配布の自動化ツール。
Fastlaneで書いているものはXcodeのコマンドラインツールでも実現できる。

note

FastlaneにはXcode12まで採用する圧倒的な理由があった、それがFastlane Matchの存在である。
Fastlaneの便利な仕組みにCode Signingを楽にしてくれるツールがついているため大変助かった。
Xcode 13からは配布証明書を今回の話の中心であるCloud-managed certificatesにより管理できることからxcodebuildコマンドのみで良くなったため、移行することとした。

match 運用 vs Cloud Signing の選定基準

iOSアプリのコード署名を行う上で、fastlane match を使った証明書共有管理と、Apple の Cloud-managed certificates(自動署名)による管理方式は、チームの規模やプロジェクトの性質に応じて適切な選択が求められます。

以下に、選定の際に考慮すべき観点をまとめた比較表を示します。

観点fastlane matchCloud-managed certificates
秘密鍵の管理手動(Git + パスフレーズ)で共有Apple 側が管理(ローカル管理不要)
導入・構成最初の構築にやや工数が必要Xcode側の自動管理で比較的簡単
CI/CD 対応証明書・プロファイルのインポートが必要任意の環境でビルド可能(署名はクラウド側)
セキュリティGitで共有する以上リスクありApple管理で安全性が高い
複数人開発管理しやすい(統一された証明書)certs が個別に作られる(人数分増える)
メンテナンス有効期限切れ対応などが必要自動更新されるため不要
カスタマイズ性柔軟な運用が可能(開発/配布の分離など)基本は自動管理に依存(xcconfig等で工夫)
App Store Connect 権限Developer 権限でOKAdmin 権限のAPI Keyが必要(CI/CD連携時)

選定の目安

  • fastlane match が向いているケース:

    • アプリ数・証明書数が多く、証明書を統合管理したい
    • 複数チームや複数人が同時に開発する
    • Appleのクラウド署名に依存したくない or 独自の署名戦略がある
  • Cloud Signing が向いているケース:

    • 小規模なチーム or スポット的なiOS開発が多い
    • Flutter やクロスプラットフォーム環境で署名まわりを簡単にしたい
    • 証明書や鍵の管理・更新にリソースを割きたくない

Resource