はじめに
今回はfastlane公式ドキュメントにReactNativeでfastlaneを導入する方法が書いていなかったので、その方法について、AppDistributionでのiOSアプリのベータ配布をする方法と共に書いていきたいと思います!!
fastlaneとは
fastlaneとはiOS, Android, flutter, ReactNative等で使用できるツールです。テスト実行, iOSの証明書発行, Beta配布, リリース等のあらゆるタスクを半自動化してくれるツールです。詳しくはfastlaneの公式ドキュメントをご覧ください!!
AppDistributionとは
AppDistributionとはfirebaseが提供するベータ配布用のツールです。TestFlightとは違い、審査というものが一切ないので開発チーム内でのベータ配布に便利です。公式ドキュメントはこちら
セットアップ
早速プロジェクトにfastlaneを導入していきます!!Homebrewを使った方法もあるのですが、今回はBundlerを利用してインストールしていきたいと思います。
$ bundle init
まずはじめにbundle init
しましょう。Gemfile
という名前のファイルが生成されると思うのでそのファイルを開いて以下の用に入力してください。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "cocoapods"
gem "fastlane"
gemをインストールします。
これでfastlaneコマンドが使えるようになったかと思います!!
$ bundle install --path vendor/bundle
下記のコマンド、ネイティブのプロジェクトではないので警告が出てきますが気にせずに進めて大丈夫です。
$ fastlane init
firebase-cliのインストールをして、firebaseアカウント(Googleアカウント)でログインします。
必ず最新のバージョンであることを確認してください。AppDistributionが使用できない場合があります
$ npm install -g firebase-tools
$ firebase login
次にAppfileの編集をしていきます。
app_identifier("[iOSアプリのバンドルID]")
apple_id("[Apple ID]")
これで基礎的な設定は完了です!!
Firebaseプロジェクトを作成する
Firebaseコンソールにアクセスし、ベータ配布用のプロジェクトを作成します。
作成が完了したら、左側のバーからAppDistributionタブを開いてiOSアプリまたはAndroidアプリ、もしくは両方の追加を行ってください。
自動化用のスクリプトを書いていく
自動化用のスクリプトを書いていこうと思います。fastlane/Fastfileを次のように編集してください!!
APP_NAME = "[YOUR_APP_NAME]"
XCODE_PROJECT_PATH = "./ios/#{APP_NAME}.xcodeproj"
XC_WORKSPACE_PATH = "./ios/#{APP_NAME}.xcworkspace"
platform :ios do
desc 'upload beta ios app to AppDistribution'
lane :beta_deploy do |options|
# ビルド用にpod installを行う
cocoapods(podfile: "./ios/Podfile")
# Xcodeプロジェクトのビルド番号をインクリメントする
increment_build_number(xcodeproj: XCODE_PROJECT_PATH)
# iosプロジェクトをXcodeビルド
gym(
scheme: APP_NAME,
# キャッシュを削除してビルド
clean: true,
workspace: XC_WORKSPACE_PATH,
output_directory: './build',
output_name: "#{APP_NAME}-beta"
)
firebase_app_distribution(
# 後ほど説明
app: ENV["FIREBASE_APP_IDENTIFIER_IOS"],
# ベータテスターのメールアドレスをカンマ区切りで入力します。
testers: "ren.example@example.com, ren.hoge@hoge.com",
release_notes: "beta version #{get_version_number(xcodeproj: XCODE_PROJECT_PATH, target: APP_NAME)}",
# 以下、ターミナルにて `which firebase`と入力することで
# firebase-cliのディレクトリが出力されるのでその結果を入力してください
firebase_cli_path: "[Firebase CLIのディレクトリ]"
)
end
end
細かな説明はコード内にコメントアウトで書いているので省きます。
上記コードの中にあったENV["FIREBASE_APP_IDENTIFIER_IOS"]
という表記について説明します。
こちらのidはFirebaseのプロジェクトコンソールの全般設定画面の下の方に表記があるのでそのアプリ Idを入力してください!!
でけた!!
これであとは動かすだけです!!実際に下記のコマンドを打ってみましょう!!
$ fastlane ios beta_deploy
上記コマンド、先ほどFastfileに書いたようにxcode buildからAppDistributionまでの広い範囲を一気に実行するのでなかなか時間がかかります。プロジェクトの規模にもよりますが少なくとも5分はかかるかと思います!!
コマンドの実行が終わったら先ほどのFirebaseのプロジェクトコンソール画面に戻ってAppDistributionタブを開いてみてください!!先ほどFastfileに入力した release_note
やtester等の情報がアップロードされていれば成功です!!
最後に、testerとして指定したメールアドレスを確認しましょう。そちらにベータテストへの招待リンクが届いているはずなので、指示に沿ってインストールしてみてください!!
さいごに
いかがでしたでしょうか?
この記事に不備等ございましたら、コメント欄にて教えていただけると幸いです!!