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 match | Cloud-managed certificates |
|---|---|---|
| 秘密鍵の管理 | 手動(Git + パスフレーズ)で共有 | Apple 側が管理(ローカル管理不要) |
| 導入・構成 | 最初の構築にやや工数が必要 | Xcode側の自動管理で比較的簡単 |
| CI/CD 対応 | 証明書・プロファイルのインポートが必要 | 任意の環境でビルド可能(署名はクラウド側) |
| セキュリティ | Gitで共有する以上リスクあり | Apple管理で安全性が高い |
| 複数人開発 | 管理しやすい(統一された証明書) | certs が個別に作られる(人数分増える) |
| メンテナンス | 有効期限切れ対応などが必要 | 自動更新されるため不要 |
| カスタマイズ性 | 柔軟な運用が可能(開発/配布の分離など) | 基本は自動管理に依存(xcconfig等で工夫) |
| App Store Connect 権限 | Developer 権限でOK | Admin 権限のAPI Keyが必要(CI/CD連携時) |
選定の目安
-
fastlane matchが向いているケース:- アプリ数・証明書数が多く、証明書を統合管理したい
- 複数チームや複数人が同時に開発する
- Appleのクラウド署名に依存したくない or 独自の署名戦略がある
-
Cloud Signing が向いているケース:
- 小規模なチーム or スポット的なiOS開発が多い
- Flutter やクロスプラットフォーム環境で署名まわりを簡単にしたい
- 証明書や鍵の管理・更新にリソースを割きたくない