App Distribution と fastlane を使用して、プレリリース iOS ビルドをより迅速に配布します

1. 始める前に

4cddd34bd261cea0.png

このコードラボでは、 Firebase App Distributionとそのfastlaneプラグインを使用して、iOS アプリをテスターに​​配布し、テストデバイスの UDID を収集し、アプリのプロビジョニング プロファイルに登録する方法を学びます。これにより、アドホック ビルドをテスターに​​迅速に取得できるようになります。 '手。

学べること

  • Firebase App Distribution とfastlaneを使用して、プレリリース iOS アプリ (アドホック) をアップロードしてテスターに​​配布する方法。
  • テスターとしてサインアップし、配布されたアプリをテスト デバイスにダウンロードする方法。
  • App Distribution のfastlaneプラグインを使用してテスト デバイスの UDID をエクスポートし、テスト デバイスを迅速に登録する方法。
  • アプリのプロビジョニング プロファイルを更新し、配布のために再アップロードする方法。

必要なもの

  • Googleアカウント
  • XCode 11.7+ がインストールされた Apple マシン
  • Xcode に組み込まれたアドホックのプレリリース iOS アプリ
  • 有料のApple Developer アカウント
  • テスト用の物理 iOS デバイス。

iOS シミュレーター アプリはほとんどのコードラボで動作しますが、シミュレーターはリリースをダウンロードできません。

App Distribution テスター Web アプリに [ダ​​ウンロード] ボタンが表示されることを確認することで、セットアップが機能したことを確認できます。

2. 始めましょう

ファストレーンをセットアップする

App Distribution はfastlaneと統合され、アプリのプレリリース ビルドの配布を自動化できるようになります。 App Distribution はfastlane構成と統合されます。

  1. fastlane をインストールしてセットアップします
  2. セットアップ中にプロジェクトのルート ディレクトリでfastlane initを実行し、[手動セットアップ] を選択します。 fastlaneの構成に使用するFastfileAppfile 、およびPluginfileを含むfastlaneというサブディレクトリが表示されます。

Firebase CLIをインストールする

Firebase CLIもインストールする必要があります。 macOS または Linux を使用している場合は、次の cURL コマンドを実行できます。

curl -sL https://firebase.tools | bash

Windows を使用している場合は、インストール手順を読んでスタンドアロン バイナリを入手するか、 npm経由でインストールしてください。

CLI をインストールしたら、 firebase --versionを実行すると、 12.0.0以降のバージョンが報告されるはずです。

$ firebase --version
12.0.0

3. fastlane を使用してアプリを構築する

アプリを構築する

  1. ./fastlane/Appfile でfastlaneのいくつかのグローバル変数を設定します./fastlane/Appfile.アプリの ID と Apple ID を含めます。
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. 最初のレーンを作成し、 fastlane のbuild_appアクション ( gymとも呼ばれます) を使用して、 ./fastlane/Fastfileに以下を追加してアプリを構築します。
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. 配布用にアプリに署名します。

このコードラボでは、 get_certificates ( certとも呼ばれる) を使用して独自の証明書とプロファイルを管理します。これは、署名証明書をローカルに生成し、すべてを macOS キーチェーンに保存します。ただし、通常は、 fastlane sync_code_signing action ( matchとも呼ばれます) を使用して、チームのコード署名証明書とプロファイルを安全に管理する必要があります。

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. get_provisioning_profileアクション ( sighとも呼ばれます) を使用して、アプリのプロビジョニング プロファイルを設定します。これにより、アプリをテスターと共有できるようになります。
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. (オプション) これまでアプリを実行したことがない場合は、次のコマンドを実行して Apple 開発者コンソールでアプリを作成します。

$ fastlane produce --skip_itc

  1. 最後に、レーンを実行してアプリを構築します。

Apple ID、パスワード (キーチェーンに保存されている)、アプリのバンドル ID の入力を求められます。

$ fastlane build

問題が発生した場合は、 fastlaneトラブルシューティング ガイドを参照してください。

4. アプリを Firebase にアップロードする

アプリの構築が完了したので、App Distribution にアップロードする準備が整いました。

Firebase プロジェクトを作成して設定する

  1. Firebase にサインインします。
  2. Firebase コンソールで、新しいプロジェクトを作成または追加し、プロジェクトに「UDID Export Codelab」という名前を付けます。

このプロジェクトに対して Google Analytics を有効にする必要はありません。

  1. 「プロジェクトの作成」をクリックします。

iOS アプリをプロジェクトに追加する

  1. iOS アイコンをクリックして新しい Firebase iOS アプリを作成し、アプリのバンドル ID を入力します。

9c26c130a6c42212.png

  1. 次のいくつかの手順をスキップし、 [コンソールに進む]をクリックします。後でアプリに SDK を追加します。

プロジェクトとアプリが[プロジェクトの概要]ページで利用できるようになりました。

66f79cc8a97fa8e9.png

アプリの配布を有効にする

  1. [リリースと監視] セクションで、 [アプリの配布]をクリックします。
  2. 規約に同意した後、[開始する] をクリックしてアプリの App Distribution を有効にします。

460213326c2784ae.png

fastlaneでディストリビューションをセットアップする

  1. iOS プロジェクトのルートから次のコマンドを実行して、App Distribution をfastlane構成に追加します。

コマンドでオプションの入力を求められた場合は、オプション 3: RubyGems.orgを選択します。

$ fastlane add_plugin firebase_app_distribution

  1. プラグインがインストールされていることを確認します。

$ fastlane

出力には、インストールされているプラ​​グインのリストにfastlane-plugin-firebase_app_distributionが表示されるはずです。

  1. プラグインがインストールされていることを確認した後、オプション 0 を選択してキャンセルします。

Firebase プロジェクトを認証する

fastlaneプラグインを使用するには、まず Firebase プロジェクトを認証します。

  1. 次のコマンドを実行して、CLI を Google アカウントに接続します。

$ firebase login

  1. コマンドによって認証リンクが出力されたら、そのリンクをブラウザで開きます。
  2. プロンプトが表示されたら、Google アカウントにログインし、Firebase プロジェクトへのアクセスを許可します。

アプリを配布する

これで、アプリを配布する準備が整いました。

  1. ./fastlane/Fastfileの先頭で、 firebase_app_idという変数を定義します。 <your_app_id>を、作成したアプリの Firebase アプリ ID に置き換えます (これはプロジェクト設定ページにあります)。

Fastfileは Ruby で記述されているため、変数を定義するには Ruby 構文を使用します。

firebase_app_id = "<your_app_id>"
  1. ビルド レーンを呼び出すdistributeという新しいレーンを追加し、 firebase_app_distributionアクションを使用してアプリを配布します。
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. 新しいレーンを実行してアプリをビルドし、ディストリビューションを作成します。

$ fastlane distribute

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Firebase コンソールを更新すると、アプリの新しいリリースが表示されます。

c59dc1a94de3bf3c.png

5. テスターを招待してアプリをダウンロードする

テスターがアドホック ビルドをテストするための招待を受け入れると、UDID を共有する許可を求められます。同意した場合、App Distribution はデバイス情報を収集し、電子メールで通知します。このセクションでは、配布したアプリをダウンロードしてテストするためのテスターとして自分を追加します。

自分自身をテスターとしてリリースに追加します

  1. Fastfile の先頭にあるfirebase_app_idの下に、テスターを保持する変数を作成し、自分のメール アドレスと、試してみたいその他のオプションのメール アドレスを含めます。
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Ruby のArray#joinメソッドを適用して、 app_testers配列をtestersパラメーターが期待するコンマ区切りの文字列に変換します。次に、結果を firebase_app_distribution のtestersパラメータに渡しますfirebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. 再び車線を走ります。

$ fastlane distribute

レーンを実行すると、追加したテスターは、新しく利用可能になったリリースを通知する招待メールを App Distribution から受け取ります。 Firebase コンソールで、アプリのリリース時に追加したテスターが表示されるようになりました。

2e0fc9603b868af8.png

メール アドレスを入力したため、Firebase App Distribution からアプリのテストを招待するメールが届きます。これであなたが最初のテスターです!以下のセクションに進み、テスト デバイスでテスターとしてセットアップします。

テストデバイスを登録する

テスターとして、テストに招待されたアプリのリリースにアクセスするには、テスト端末で Google にログインする必要があります。テスト ビルドはアドホック リリースであるため、Firebase プロファイルをインストールしてテスト デバイスを登録する必要もあります。その後、デバイスのホーム画面に追加された Web クリップを使用して、App Distribution Tester Web アプリから利用可能になるリリースにアクセスできるようになります。

  1. iOS テスト デバイスで、Firebase App Distribution から送信されたメールを開き、 [始める]リンクをタップします。必ず Safari でリンクを開いてください。
  2. これで、App Distribution テスター Web アプリが表示されました。表示されるページで、Google アカウントでサインインし、 「招待を受け入れる」をタップします。

d833407de251b89f.png

  1. 招待されたリリースが表示されるようになりました。いずれかのリリースの下にある[デバイスの登録]をタップします。

fd141215e54a938d.png

  1. プロンプトが表示されたら、Firebase プロファイルをダウンロードし、設定アプリにプロファイルをインストールします。

プロファイルをインストールすると、Firebase に次の権限が付与されます。

  • デバイスの一意のデバイス ID (UDID) を収集して、テスト デバイスを登録します。

Firebase は、Firebase プロジェクトのすべての所有者と編集者に、テスト デバイスの UDID を含むメールを送信します。

  • Web クリップをテスト デバイスのホーム画面にインストールします。 Web クリップにより、App Distribution テスター Web アプリが開き、すべてのテスト アプリをインストールしてアクセスできるようになります。

これで、App Distribution テスター Web アプリで、テスト デバイスがアプリのリリース用に登録されました。

fe93d649dfa25877.png

テスト デバイスの UDID を Firebase に共有したので、開発者として再開できるようになりました。 App Distribution ダッシュボード[テスター] タブで、アプリのリリースの下にテスター情報が「承認済み」というステータスで表示されます。

7b9f665a63a384cf.png

次のセクションでは、デバイスの UDID をアプリのプロビジョニング プロファイルに追加し、テスト デバイスで動作するバージョンのアプリを構築します。

テスターデバイスのUDIDをエクスポートする

開発者は、テスト デバイスの UDID を含むメールを Firebase から受け取ります。オプションとして、App Distribution を使用すると、Firebase コンソールから生のテキスト ファイルとして直接エクスポートできるため、複数の新しいデバイス UDID を一度に簡単に収集できます。

  1. すべての UDID をエクスポートするには、 「テスターとグループ」タブを開きます。

241a9936898a2fc0.png

  1. [Apple UDID をエクスポート] をクリックします。

bcf0c26c522d9b4e.png

ファイルにはテスト デバイスの UDID が含まれている必要があります。

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID は、 fastlane を使用してコマンド ラインからエクスポートすることもできます。これについては次のセクションで説明します。

6. アプリのプロビジョニング プロファイルを更新し、再構築します。

次に、テスト デバイスの UDID をアプリのプロビジョニング プロファイルに追加し、デバイスで動作するアプリのバージョンを再構築し、新しいバージョンを配布します。

UDIDエクスポートレーンを追加

  1. Fastfile の先頭に別の変数を追加し、テスターのデバイス UDID がダウンロードされるファイル パスに設定します。
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. コンソールから行ったのと同じように、App Distribution プラグインの UDID エクスポート アクションを使用してテスター UDID をダウンロードする新しいレーンを設定します。
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. 次のレーンを実行して UDID をダウンロードします。

$ fastlane download_udids

  1. ダウンロードしたファイルを印刷します。このファイルにはテスト デバイスの UDID が含まれています。

$ cat tester_udids.txt

Apple 開発者コンソールにデバイスを追加する

  1. 次のレーンを作成して、Apple 開発者コンソールのデバイス リストに UDID を追加します。これにより、 fastlane のregister_devicesアクションを使用してそれらをプロビジョニング プロファイルに追加できるようになります。
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. 次に、レーンを実行します。

$ fastlane add_new_devices

これで、開発者コンソールのデバイス リストに新しいデバイスが表示されます。

プロビジョニング プロファイルにデバイスを追加する

  1. buildするたびに新しいデバイスを強制的に選択するには、ビルド レーンのプロビジョニング プロファイル ステップにforce引数を追加します。
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

レーンを再実行して構築してアップロードする

ここで、デバイスをプロビジョニング プロファイルに追加し、アプリを再構築して、配布するために、新しいレーンでdistributeレーンを更新します。

  1. 新しいレーンをdistributeから呼び出します。
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. distributeレーンを実行します。

$ fastlane distribute

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

テストデバイスからリリースをダウンロードする

アプリにテスト デバイスの UDID が含まれたので、それらをテスト デバイスにインストールできます。

e275f73d57cc8fb1.png

  1. テスト デバイスで、電子メール内のリンク、またはデバイスのホーム画面のアイコンを使用して、App Distribution テスター Web アプリに戻ります。

UDID コードラボ アプリに移動すると、リリースをダウンロードする準備ができていることがわかります。

お父さん6d03b6ad78746.png

  1. 物理デバイスを使用している場合は、ダウンロードを押してから、アプリをインストールして実行します。

7. おめでとうございます

これで、リリース前のテスト プロセスを自動化するように App Distribution とfastlaneが構成されました。これで、追加のテスターを招待したり、テスターの UDID をアプリに追加したりする場合、コマンドfastlane distribute 1 つ実行するだけで済みます。

そのため、テスターから UDID を個別に収集したり、Apple 開発者コンソールにアクセスしてデバイス リストやプロビジョニング プロファイルを更新したりする必要はもうありません。 XCode を開く必要さえありません。

このワークフローは、継続的統合環境で時間ごとまたは毎日実行するように簡単に設定できます。

参考文献

1. 始める前に

4cddd34bd261cea0.png

このコードラボでは、 Firebase App Distributionとそのfastlaneプラグインを使用して、iOS アプリをテスターに​​配布し、テストデバイスの UDID を収集し、アプリのプロビジョニング プロファイルに登録する方法を学びます。これにより、アドホック ビルドをテスターに​​すばやく提供できるようになります。 '手。

学べること

  • Firebase App Distribution とfastlaneを使用して、プレリリース iOS アプリ (アドホック) をアップロードしてテスターに​​配布する方法。
  • テスターとしてサインアップし、配布されたアプリをテスト デバイスにダウンロードする方法。
  • App Distribution のfastlaneプラグインを使用してテスト デバイスの UDID をエクスポートし、テスト デバイスを迅速に登録する方法。
  • アプリのプロビジョニング プロファイルを更新し、配布のために再アップロードする方法。

必要なもの

  • Googleアカウント
  • XCode 11.7+ がインストールされた Apple マシン
  • Xcode に組み込まれたアドホックのプレリリース iOS アプリ
  • 有料のApple Developer アカウント
  • テスト用の物理 iOS デバイス。

iOS シミュレーター アプリはほとんどのコードラボで動作しますが、シミュレーターはリリースをダウンロードできません。

App Distribution テスター Web アプリに [ダ​​ウンロード] ボタンが表示されることを確認することで、セットアップが機能したことを確認できます。

2. 始めましょう

ファストレーンをセットアップする

App Distribution はfastlaneと統合され、アプリのプレリリース ビルドの配布を自動化できるようになります。 App Distribution はfastlane構成と統合されます。

  1. fastlane をインストールしてセットアップします
  2. セットアップ中にプロジェクトのルート ディレクトリでfastlane initを実行し、[手動セットアップ] を選択します。 fastlaneの構成に使用するFastfileAppfile 、およびPluginfileを含むfastlaneというサブディレクトリが表示されます。

Firebase CLIをインストールする

Firebase CLIもインストールする必要があります。 macOS または Linux を使用している場合は、次の cURL コマンドを実行できます。

curl -sL https://firebase.tools | bash

Windows を使用している場合は、インストール手順を読んでスタンドアロン バイナリを入手するか、 npm経由でインストールしてください。

CLI をインストールしたら、 firebase --versionを実行すると、 12.0.0以降のバージョンが報告されるはずです。

$ firebase --version
12.0.0

3. fastlane を使用してアプリを構築する

アプリを構築する

  1. ./fastlane/Appfile でfastlaneのいくつかのグローバル変数を設定します./fastlane/Appfile.アプリの ID と Apple ID を含めます。
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. 最初のレーンを作成し、 fastlane のbuild_appアクション ( gymとも呼ばれます) を使用して、 ./fastlane/Fastfileに以下を追加してアプリを構築します。
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. 配布用にアプリに署名します。

このコードラボでは、 get_certificates ( certとも呼ばれる) を使用して独自の証明書とプロファイルを管理します。これにより、署名証明書がローカルに生成され、すべてが macOS キーチェーンに保存されます。ただし、通常は、 fastlane sync_code_signing action ( matchとも呼ばれます) を使用して、チームのコード署名証明書とプロファイルを安全に管理する必要があります。

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. get_provisioning_profileアクション ( sighとも呼ばれます) を使用して、アプリのプロビジョニング プロファイルを設定します。これにより、アプリをテスターと共有できるようになります。
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. (オプション) これまでアプリを実行したことがない場合は、次のコマンドを実行して Apple 開発者コンソールでアプリを作成します。

$ fastlane produce --skip_itc

  1. 最後に、レーンを実行してアプリを構築します。

Apple ID、パスワード (キーチェーンに保存されている)、アプリのバンドル ID の入力を求められます。

$ fastlane build

問題が発生した場合は、 fastlaneトラブルシューティング ガイドを参照してください。

4. アプリを Firebase にアップロードする

アプリの構築が完了したので、App Distribution にアップロードする準備が整いました。

Firebase プロジェクトを作成して設定する

  1. Firebase にサインインします。
  2. Firebase コンソールで、新しいプロジェクトを作成または追加し、プロジェクトに「UDID Export Codelab」という名前を付けます。

このプロジェクトに対して Google Analytics を有効にする必要はありません。

  1. 「プロジェクトの作成」をクリックします。

iOS アプリをプロジェクトに追加する

  1. iOS アイコンをクリックして新しい Firebase iOS アプリを作成し、アプリのバンドル ID を入力します。

9c26c130a6c42212.png

  1. 次のいくつかの手順をスキップし、 [コンソールに進む]をクリックします。後でアプリに SDK を追加します。

プロジェクトとアプリが[プロジェクトの概要]ページで利用できるようになりました。

66f79cc8a97fa8e9.png

アプリの配布を有効にする

  1. [リリースと監視] セクションで、 [アプリの配布]をクリックします。
  2. 規約に同意した後、[開始する] をクリックしてアプリの App Distribution を有効にします。

460213326c2784ae.png

fastlaneでディストリビューションをセットアップする

  1. iOS プロジェクトのルートから次のコマンドを実行して、App Distribution をfastlane構成に追加します。

コマンドでオプションの入力を求められた場合は、オプション 3: RubyGems.orgを選択します。

$ fastlane add_plugin firebase_app_distribution

  1. プラグインがインストールされていることを確認します。

$ fastlane

出力には、インストールされているプラ​​グインのリストにfastlane-plugin-firebase_app_distributionが表示されるはずです。

  1. プラグインがインストールされていることを確認した後、オプション 0 を選択してキャンセルします。

Firebase プロジェクトを認証する

fastlaneプラグインを使用するには、まず Firebase プロジェクトを認証します。

  1. 次のコマンドを実行して、CLI を Google アカウントに接続します。

$ firebase login

  1. コマンドによって認証リンクが出力されたら、そのリンクをブラウザで開きます。
  2. プロンプトが表示されたら、Google アカウントにログインし、Firebase プロジェクトへのアクセスを許可します。

アプリを配布する

これで、アプリを配布する準備が整いました。

  1. ./fastlane/Fastfileの先頭で、 firebase_app_idという変数を定義します。 <your_app_id>を、作成したアプリの Firebase アプリ ID に置き換えます (これはプロジェクト設定ページにあります)。

Fastfileは Ruby で記述されているため、変数を定義するには Ruby 構文を使用します。

firebase_app_id = "<your_app_id>"
  1. ビルド レーンを呼び出すdistributeという新しいレーンを追加し、 firebase_app_distributionアクションを使用してアプリを配布します。
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. 新しいレーンを実行してアプリをビルドし、ディストリビューションを作成します。

$ fastlane distribute

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Firebase コンソールを更新すると、アプリの新しいリリースが表示されます。

c59dc1a94de3bf3c.png

5. テスターを招待してアプリをダウンロードする

テスターがアドホック ビルドをテストするための招待を受け入れると、UDID を共有する許可を求められます。同意した場合、App Distribution はデバイス情報を収集し、電子メールで通知します。このセクションでは、配布したアプリをダウンロードしてテストするためのテスターとして自分を追加します。

自分自身をテスターとしてリリースに追加します

  1. Fastfile の先頭にあるfirebase_app_idの下に、テスターを保持する変数を作成し、自分のメール アドレスと、試してみたいその他のオプションのメール アドレスを含めます。
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Ruby のArray#joinメソッドを適用して、 app_testers配列をtestersパラメーターが期待するコンマ区切りの文字列に変換します。次に、結果を firebase_app_distribution のtestersパラメータに渡しますfirebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. 再び車線を走ります。

$ fastlane distribute

レーンを実行すると、追加したテスターは、新しく利用可能になったリリースを通知する招待メールを App Distribution から受け取ります。 Firebase コンソールで、アプリのリリース時に追加したテスターが表示されるようになりました。

2e0fc9603b868af8.png

メール アドレスを入力したため、Firebase App Distribution からアプリのテストを招待するメールが届きます。これであなたが最初のテスターです!以下のセクションに進み、テスト デバイスでテスターとしてセットアップします。

テストデバイスを登録する

テスターとして、テストに招待されたアプリのリリースにアクセスするには、テスト端末で Google にログインする必要があります。テスト ビルドはアドホック リリースであるため、Firebase プロファイルをインストールしてテスト デバイスを登録する必要もあります。その後、デバイスのホーム画面に追加された Web クリップを使用して、App Distribution Tester Web アプリから利用可能になるリリースにアクセスできるようになります。

  1. iOS テスト デバイスで、Firebase App Distribution から送信されたメールを開き、 [始める]リンクをタップします。必ず Safari でリンクを開いてください。
  2. これで、App Distribution テスター Web アプリが表示されました。表示されるページで、Google アカウントでサインインし、 「招待を受け入れる」をタップします。

d833407de251b89f.png

  1. 招待されたリリースが表示されるようになりました。いずれかのリリースの下にある[デバイスの登録]をタップします。

fd141215e54a938d.png

  1. プロンプトが表示されたら、Firebase プロファイルをダウンロードし、設定アプリにプロファイルをインストールします。

プロファイルをインストールすると、Firebase に次の権限が付与されます。

  • デバイスの一意のデバイス ID (UDID) を収集して、テスト デバイスを登録します。

Firebase は、Firebase プロジェクトのすべての所有者と編集者に、テスト デバイスの UDID を含むメールを送信します。

  • Web クリップをテスト デバイスのホーム画面にインストールします。 Web クリップにより、App Distribution テスター Web アプリが開き、すべてのテスト アプリをインストールしてアクセスできるようになります。

これで、App Distribution テスター Web アプリで、テスト デバイスがアプリのリリース用に登録されました。

fe93d649dfa25877.png

テスト デバイスの UDID を Firebase に共有したので、開発者として再開できるようになりました。 App Distribution ダッシュボード[テスター] タブで、アプリのリリースの下にテスター情報が「承認済み」というステータスで表示されます。

7b9f665a63a384cf.png

次のセクションでは、デバイスの UDID をアプリのプロビジョニング プロファイルに追加し、テスト デバイスで動作するバージョンのアプリを構築します。

テスターデバイスのUDIDをエクスポートする

開発者は、テスト デバイスの UDID を含むメールを Firebase から受け取ります。オプションとして、App Distribution を使用すると、Firebase コンソールから生のテキスト ファイルとして直接エクスポートできるため、複数の新しいデバイス UDID を一度に簡単に収集できます。

  1. すべての UDID をエクスポートするには、 「テスターとグループ」タブを開きます。

241a9936898a2fc0.png

  1. [Apple UDID をエクスポート] をクリックします。

bcf0c26c522d9b4e.png

ファイルにはテスト デバイスの UDID が含まれている必要があります。

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID は、 fastlane を使用してコマンド ラインからエクスポートすることもできます。これについては次のセクションで説明します。

6. アプリのプロビジョニング プロファイルを更新し、再構築します。

次に、テスト デバイスの UDID をアプリのプロビジョニング プロファイルに追加し、デバイスで動作するアプリのバージョンを再構築し、新しいバージョンを配布します。

UDIDエクスポートレーンを追加

  1. Fastfile の先頭に別の変数を追加し、テスターのデバイス UDID がダウンロードされるファイル パスに設定します。
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. コンソールから行ったのと同じように、App Distribution プラグインの UDID エクスポート アクションを使用してテスター UDID をダウンロードする新しいレーンを設定します。
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. 次のレーンを実行して UDID をダウンロードします。

$ fastlane download_udids

  1. ダウンロードしたファイルを印刷します。このファイルにはテスト デバイスの UDID が含まれています。

$ cat tester_udids.txt

Apple 開発者コンソールにデバイスを追加する

  1. 次のレーンを作成して、Apple 開発者コンソールのデバイス リストに UDID を追加します。これにより、 fastlane のregister_devicesアクションを使用してそれらをプロビジョニング プロファイルに追加できるようになります。
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. 次に、レーンを実行します。

$ fastlane add_new_devices

これで、開発者コンソールのデバイス リストに新しいデバイスが表示されます。

プロビジョニング プロファイルにデバイスを追加する

  1. buildするたびに新しいデバイスを強制的に選択するには、ビルド レーンのプロビジョニング プロファイル ステップにforce引数を追加します。
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

レーンを再実行して構築してアップロードする

ここで、デバイスをプロビジョニング プロファイルに追加し、アプリを再構築して、配布するために、新しいレーンでdistributeレーンを更新します。

  1. 新しいレーンをdistributeから呼び出します。
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. distributeレーンを実行します。

$ fastlane distribute

この時点で、Fastfile は次のようになります。

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

テストデバイスからリリースをダウンロードする

アプリにテスト デバイスの UDID が含まれたので、それらをテスト デバイスにインストールできます。

e275f73d57cc8fb1.png

  1. テスト デバイスで、電子メール内のリンク、またはデバイスのホーム画面のアイコンを使用して、App Distribution テスター Web アプリに戻ります。

UDID コードラボ アプリに移動すると、リリースをダウンロードする準備ができていることがわかります。

お父さん6d03b6ad78746.png

  1. 物理デバイスを使用している場合は、ダウンロードを押してから、アプリをインストールして実行します。

7. おめでとうございます

これで、リリース前のテスト プロセスを自動化するように App Distribution とfastlaneが構成されました。これで、追加のテスターを招待したり、テスターの UDID をアプリに追加したりする場合、コマンドfastlane distribute 1 つ実行するだけで済みます。

そのため、テスターから UDID を個別に収集したり、Apple 開発者コンソールにアクセスしてデバイス リストやプロビジョニング プロファイルを更新したりする必要はもうありません。 XCode を開く必要さえありません。

このワークフローは、継続的統合環境で時間ごとまたは毎日実行するように簡単に設定できます。

参考文献