FirebaseAppDistribution(以降FAD)は開発中のアプリをβテスターへ配信するサービスです。iOS/Androidへ両対応しています。
今回Flutter iOSアプリを、FADで配信してみたので、手順についてまとめます。
環境
- macOS Mojave 10.14.6
- fastlane 2.142.0
- Flutter 1.12.13+hotfix.7
fastlane設定
まず、Flutter公式 の手順に従い、fastlaneをインストールします。
$ brew install fastlane
次に、Flutterプロジェクト内でfastlaneプロジェクトを初期化します。
$ cd <Flutter project dir>/ios
$ fastlane init
...
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks
? 4
これで<Flutter project dir>/ios下にfastlaneディレクトリが生成されます。
次に、Appfileを設定していきます。
AppfileはAppleIDやBundleIdentifier など、fastlaneでビルドに使用する情報を設定するファイルです。
$ cd fastlane
$ vim Appfile
Appfileに次の情報を記載します。
app_identifier("<Bundle Identifier>")
apple_id("<AppleID(mail address)>")
あとは、.bashrcに環境変数にAppleIDのパスワードを追記しておきます。
export FASTLANE_PASSWORD=<your password>
あとは、FADが使えるようにプラグインインストールしておきます。
$ fastlane add_plugin firebase_app_distribution
プロビジョニング・プロファイルを作成
FADでアプリを配信するためには、AppStoreではなくAd Hoc(評価配布用)またはEnterpriseの配布プロファイルを使用する必要があります。(プロファイルがAppStoreだとUUIDを追加できない)
未作成の場合は、AppleDeveloperより作成しておきます。ここではAdHocプロファイルの想定で進めていきます。
プロファイルを作成したら、Xcode>Preference>AccountsよりDownloadManualProfilesをクリックし、作成したプロファイルをダウンロードします。
その後、Signing&Capabilitiesより、手動でプロファイルを設定しておきます。
FirebaseAppDistributionの設定
まず、FirebaseCLIをインストールしていない場合、次のコマンドでインストールします。
$ curl -sL firebase.tools | bash
インストールしたら、次のコマンドでFirebaseへログインします。
$ firebase login
Firebaseコンソール に移動し、プロジェクトを作成します。
プロジェクトを作成後、プロジェクトの左サイドバーより、ProjectOverview>歯車アイコン>プロジェクトの設定をクリックします。
iOSアプリが未登録の場合、「アプリを追加」より追加しておきます。(後で使用するので「アプリID」を控えておいてください)
アプリを追加し終えたら、左サイドバーより品質>AppDistributionをクリックします。
「開始」ボタンをクリックし、FADの利用を始めます。
AppDistribution>テスターとグループ から、テスターやテストグループをを追加します。(ここではmeグループを作成し、自分を追加しています)
テスターへ配布する
それでは、fastlaneを使用してFADへビルドをアップロードしていきます。
<Flutter project dir>/ios/fastlane下のFastfileを次のように編集してください。
default_platform(:ios)
platform :ios do
lane :dist_me do
build_ios_app(export_options: {method: "ad-hoc"})
firebase_app_distribution(
app:"<アプリID>",
groups:"me",
firebase_cli_path:"/usr/local/bin/firebase"
)
end
end
appにはFirebaseで作成したアプリIDを、groupsには配信先グループ名を設定します。
あとは、次のコマンドでFADで配信できます。(プロビジョニング・プロファイルとテスト端末を結びつけていない場合、配信後に届く招待メールから端末のUUIDを登録してください。その後、プロファイルと端末を結びつけ、プロファイルをダウンロードしてから再度コマンドを実行してください)
$ fastlane dist_me
これでテスト端末へ配信できます。