【iOS/Xcode】Fastlaneの導入方法!ビルドや証明書周りの自動化ツールとCI/CD

この記事からわかること
- iOS/Xcodeの自動化ツール:Fastlaneの導入方法と使い方
- Homebrew/rbenv/bundlerのインストール手順
- セットアップ方法
- AppfileやFastfileとは?
index
[open]
\ アプリをリリースしました /
環境
- Xcode:15.0.1
- watchOS:10.0
- Swift:5.9
- macOS:Sonoma 14.1
- fastlane:2.221.0
Fastlaneとは?
「Fastlane」とはiOSまたはAndroidアプリの配布やテスト周りの作業を自動化するためのCI/CDツールです。できることは大きく分けて以下の4つになります。
- App StoreConnect/GooglePlayでのリリース作業
- テストの実行
- コード署名まわり
- スクリーンショットの自動生成
仕組みとしてはFastfile
というRubyで記述した設定ファイルを用意し、ターミナルなどからコマンドを実行するだけで特定の作業を自動で行ってくれるものになります。
CI/CDとは?
CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称で、ざっくり言うとソースコードの統合(Integration)と配布(Delivery)を自動化する手法のことを指します。
Fastlaneの導入方法
Fastlane
を使用するにはまず導入作業が必要になります。今回はFastlane
を導入するためにHomebrew
、rbenv
、bundler
の3つがインストールしていきます。Homebrewから直接Fastlane
をインストールすることもできますが、macOSのシステムRubyをそのまま活用すると依存関係の問題が多発するので、それぞれを管理できるツールを使用して導入まで進みます。
- Homebrew・・・MacOS(及びLinux)のパッケージ管理ツール
- rbenv・・・Rubyのバージョン管理ツール
- bundler・・・RubyのGemパッケージマネージャー
それぞれのツールのインストールはターミナルを起動させたままのカレントディレクトリで行っていきます。
1.Homebrewの導入
Homebrew
は以下コマンド実行して導入できます。詳細な方法は以下の記事を参考にしてください。
おすすめ記事:Homebrew(ホームブルー)のインストール方法
環境変数パスを通します。
バージョンが適切に返ってこれば成功です。
2.rbenvの導入
Homebrew
を使ってrbenv
を導入します。
環境変数パスを通します。
バージョンが適切に返ってこれば成功です。
3. Rubyの導入
続いてRuby
をインストールしていきます。まずはインストール可能なバージョンを確認するために-l
または--list
オプションを実行します。
--list
オプションでインストール可能なRubyの最新安定版が表示されるのでそこからインストールしたいバージョンを決めてインストールしていきます。
バージョンが適切に返ってきて、rbenvのgemが動作していれば成功です。
4. bundlerの導入
bundler
をgem
を使用して導入していきます。
バージョンが適切に返ってこれば成功です。
ここまででPCへの導入作業が完了しました。一度作業すれば後はXcodeのプロジェクトに対してこれから説明する手順を実行してするだけになります。
XcodeプロジェクトにFastlaneを組み込む
XcodeプロジェクトにFastlane
を組み込んでいきます。ターミナルを起動しカレントディレクトリをXcodeプロジェクトに合わせてbundle init
コマンドを実行します。
実行するとプロジェクトルートに「Gemfile」が生成されます。GemFile
はGemとツールのバージョンを指定するためのテキストファイルです。
この中にgem "fastlane"
を追加してbundle install
コマンドを実行します。するとfastlane
を動作させるために必要なライブラリなどがインストールされていきます。いろいろインストールされますがこれはfastlane
が依存関係を多く持っているためです。
bundle install
コマンドが完了すると「Gemfile.lock」がプロジェクトルートに生成されます。このファイルにはインストールされたGemのバージョンと依存関係が記録されています。同じGemfile.lockを使用する他の開発者や環境でも、バージョンの齟齬がないように環境構築することができるようになります。
Fastlaneのセットアップ
bundle exec fastlane init
コマンドを実行してFastlaneを使用するための設定ファイルを生成していきます。実行すると「ファストレーンを何に使いたいですか?」と問われるので該当の番号を指定します。今回は4:手動セットアップ
を選択したいので4を入力してEnter
を押し、その後も3回Enter
を叩きます。
完了するとプロジェクトルートに「fastlane」ディレクトリが生成されその中に「Appfile」と「Fastfile」ファイルが生成されます。
AppFileとは?
Appfileはアプリケーションに関する基本的な情報を設定するためのファイルです。Apple IDやBundle ID、チームIDなどを定義する際に使用します。
「Fastfile」内で 「Appfile」で定義している値を使用したい場合はCredentialsManager::AppfileConfig.try_fetch_value(:キー名)
を使用します。
Fastfileとは?
Fastfileはfastlaneで実行するアクションやワークフロー(レーン)を定義するファイルです。ここには、テストの実行、ビルドの作成、配布など自動化したいタスクを記述します。レーンや各アクションの記述方法は以下の公式リファレンスを参考にしてください。
中には以下のようにlane
を追加して処理を実装していきます。lane
は複数記述することができ$ bundle exec fastlane レーン名
というコマンドをターミナルから実行することで処理を走らせることができます。
今回はFastlaneの導入とXcodeプロジェクトへのセットアップまでをまとめました。次は実際にFastlaneを使用して自動化していく記事を作成したいと思います。
おすすめ記事
【Xcode/Fastlane】テストの自動化方法!run_testsアクションの使い方
【Xcode/Fastlane】自動ビルドしてipaファイルを生成/アーカイブする方法!build_app
【Xcode/Fastlane】バージョンとビルド番号を自動でインクリメントする方法!increment_version_number
.envファイルを用意する
Fastfile内で値をそのままハードコードするのではなく.env
ファイルを用意し、そこに秘密にしたい値(IDやKeyなど)を定義しておき、Fastfileから読み込ませることも可能です。
.env
ファイルはプロジェクト直下に作成したいので以下コマンドで空のファイルを生成し、中にキー名=値
の形式で記述します。
Fastfile内で参照したい場合はENV['キー名']
形式で取得することができます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。