Firebase App Distribution iOS SDK を使用して新しいアプリのリリースについてテスターに​​警告する - Codelab

1。概要

iOS アプリのコードラボへの Firebase App Distribution SDK の統合へようこそ。このコードラボでは、新しいビルドがダウンロード可能になったときにテスターに​​アプリ内アラートを表示するために、App Distribution SDK をアプリに追加します。基本構成とカスタム構成の両方を使用して、テスターに​​サインインして更新を受信させる方法を学習します。次に、新しいリリースを App Distribution にプッシュし、アプリ内で新しいビルド アラートをトリガーします。

学べること

  • App Distribution を使用してプレリリース アプリをライブ テスターに​​配布する方法
  • App Distribution iOS SDKをアプリに統合する方法
  • 新しいプレリリース ビルドをインストールする準備ができたときにテスターに​​警告する方法
  • 独自のテスト ニーズに合わせて SDK をカスタマイズする方法

必要なもの

  • Xcode 12 (またはそれ以降)
  • CocoaPods 1.9.1 (またはそれ以降)
  • アドホック配布用のApple 開発者アカウント
  • テスト用の物理 iOS デバイス。 ( iOS シミュレーター アプリはほとんどのコードラボで動作しますが、シミュレーターはリリースをダウンロードできません。)

このチュートリアルをどのように使用しますか?

あくまで通読してくださいそれを読んで演習を完了してください

iOS アプリの構築に関するあなたの経験をどのように評価しますか?

初心者中級熟練した

2. Firebaseコンソールプロジェクトを作成する

新しい Firebase プロジェクトを追加する

  1. Firebase にサインインします。
  2. Firebase コンソールで、 [プロジェクトの追加] をクリックし、プロジェクトに「Firebase Codelab」という名前を付けます。

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

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

Firebaseにアプリを追加

ドキュメントに従って、アプリを Firebase に登録します。 iOS バンドル ID として「com.google.firebase.codelab.AppDistribution.<your_name>」を使用します。

プロンプトが表示されたら、プロジェクトのGoogleService-Info.plistファイルをダウンロードします。これは後で必要になります。

3. サンプルプロジェクトを入手する

コードをダウンロードする

まず、サンプル プロジェクトのクローンを作成します。

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

git がインストールされていない場合は、GitHub ページから、またはこのリンクをクリックしてサンプル プロジェクトをダウンロードすることもできます。

依存関係をダウンロードし、Xcode でプロジェクトを開きます

  1. 同じディレクトリ内のPodfileを開きます
cd firebase-appdistribution-ios/start
Open Podfile
  1. 次の行をポッドファイルに追加します。

ポッドファイル

pod 'Firebase/AppDistribution'

プロジェクト ディレクトリでpod updateを実行し、Xcode でプロジェクトを開きます。

pod install --repo-update
xed .

Firebase アプリと一致するようにバンドル識別子を更新します

左側のメニューで、 「AppDistributionExample」をダブルクリックします。次に、 [全般]タブに移動し、バンドル識別子を Firebase アプリのバンドル識別子と一致するように変更します。バンドル識別子はプロジェクト設定で確認できます。これは「com.google.firebase.codelab.AppDistribution.<your_name>」である必要があります。

Firebase をアプリに追加する

ファイル システム内で以前にダウンロードしたGoogleService-Info.plistファイルを見つけて、それを Xcode プロジェクトのルートにドラッグします。このファイルは、プロジェクトの設定ページからいつでもダウンロードできます。

3cf9290805e7fdab.png

AppDistributionExample/AppDelegate.swiftファイルで、ファイルの先頭に Firebase をインポートします。

AppDistributionExample/AppDelegate.swift

import Firebase

そして、 didFinishLaunchingWithOptionsメソッドに、Firebase を設定するための呼び出しを追加します。

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. App Distribution SDKを使用してアプリ内新規ビルドアラートを設定する

このステップでは、Firebase App Distribution SDK をアプリに追加し、アプリの新しいビルドがインストール可能になったときにテスターに​​アプリ内アラートを表示します。これを行うには、(Google Cloud Console で) 「Firebase Codelab」プロジェクトに対してFirebase App Testers API が有効になっていることを確認してください。同じアカウントでログインし、上部のドロップダウン メニューから正しいプロジェクトを選択する必要があります。

アプリ内アラートを構成する

App Distribution SDK は、テスター向けにアプリ内ビルド アラートを設定する 2 つの方法を提供します。1 つは、テスターに​​表示する事前に構築されたサインイン ダイアログを備えた基本的なアラート構成で、もう 1 つは高度なアラート構成です。独自のユーザー インターフェイス (UI) をカスタマイズします。

基本的なアラート構成から始めます。 checkForUpdateを使用すると、アラートをまだ有効にしていないテスターに​​事前に構築されたアラートの有効化ダイアログを表示し、新しいビルドが利用可能かどうかを確認できます。テスターは、App Distribution のアプリにアクセスできるアカウントにサインインして、アラートを有効にします。呼び出されると、メソッドは次のシーケンスを実行します。

  1. テスターがアラートを有効にしているかどうかを確認します。そうでない場合は、Google アカウントを使用して App Distribution にサインインするように求める事前構築されたダイアログが表示されます。

アラートの有効化はテスト デバイス上で 1 回限りのプロセスであり、アプリの更新後も継続されます。アラートは、アプリがアンインストールされるか、 signOutTesterメソッドが呼び出されるまで、テスト デバイス上で有効なままになります。詳細については、メソッドのリファレンス ドキュメント ( SwiftまたはObjective-C ) を参照してください。

  1. テスターがインストールできる新しく利用可能なビルドを確認します。リリースオブジェクトまたはエラーを返します。

アプリのどの時点でもcheckForUpdateを含めることができます。たとえば、 UIViewControllerviewDidAppearcheckForUpdate を含めることで、起動時に新しく利用可能なビルドをインストールするようにテスターに​​促すことができます。

AppDistributionViewController.swiftファイルの先頭に Firebase をインポートします。

AppDistributionViewController.swift

import Firebase

AppDistributionExample/AppDistributionViewController.swiftを開き、次のように行をviewDidAppearメソッドにコピーします。

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

次に、checkForUpdate() メソッドを実装しましょう。

AppDistributionViewController.swift

  private func checkForUpdate() {
    AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
      var uiAlert: UIAlertController

      if error != nil {
        uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
      } else if release == nil {
        uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
        uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
      } else {
        guard let release = release else { return }

        let title = "New Version Available"
        let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
        uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)

        uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
          _ in
          UIApplication.shared.open(release.downloadURL)
        })
        uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
          _ in
        })
      }
      self.present(uiAlert, animated: true, completion: nil)
    })
  }

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

このステップでは、アプリをビルドし、Firebase コンソールを使用してテスターに​​ビルドを配布することで実装をテストします。

アプリを構築する

アプリのプレリリース バージョンをテスターに​​配布する準備ができたら、ビルド先として「任意の iOS デバイス (arm64)」を選択し、[製品] > [アーカイブ] を選択します。アーカイブが作成されたら、開発配布プロファイルを使用して署名付き配布を構築します。

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

ビルドが完了すると、IPA ファイルといくつかのログ ファイルが指定したフォルダーに保存されます。次の手順で IPA ファイルをテスターに​​配布します。

アプリの構築中に問題が発生した場合は、トラブルシューティング手順についてApple の共同署名ドキュメントを参照してください。

アプリをテスターに​​配布する

アプリをテスターに​​配布するには、Firebase コンソールを使用して IPA ファイルをアップロードします。

  1. Firebase コンソールの[アプリ配布] ページを開きます。プロンプトが表示されたら、Firebase プロジェクトを選択します。
  2. 「はじめる」を押してください

e4671bd304ecfe47.png

  1. [リリース] ページで、配布するアプリをドロップダウン メニューから選択します。

8a3da2939b9746f4.png

  1. アプリの IPA ファイルをコンソールにドラッグしてアップロードします。
  2. アップロードが完了したら、ビルドを受け取りたいテスター グループと個々のテスターを指定します。 (招待を受信するには電子メールを追加してください。) 次に、ビルドのリリース ノートを追加します。テスター グループの作成の詳細については、 「テスターの管理」を参照してください。

de63e3c3c64f909e.png

  1. [配布] をクリックして、テスターがビルドを利用できるようにします。

b6e75dc216fc3731.png

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

Firebase コンソールで、アプリのリリース時に追加したテスターが表示されるようになりました。

eb61c6be96ff3a11.png

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

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

アドホック リリースをダウンロードしてテストするには、まずテスト デバイスを登録する必要があります。

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

4d1af345ef944620.png

これで、招待されたリリースが表示されます。

  1. [デバイスの登録]をタップして UDID を Firebase と共有し、後でアプリのプロビジョニング プロファイルを更新できるようにします。

fd141215e54a938d.png

  1. 指示に従い、設定に移動してプロファイルをダウンロードし、UDID を共有します。

ここで、App Distribution に戻ると、リリースは「デバイスが登録済み」としてマークされます。

fe93d649dfa25877.png

テスターの UDID が開発者と共有されました。テスターに​​新しいバージョンのアプリを構築するかどうかは、開発者の責任になります。

コンソールでテスター情報を表示する

Firebase コンソールの開発者ビューに戻ると、テスターはリリースの下に「承認済み」として表示されます。

1bef6f182c1c58f9.png

また、開発者が使用しているデバイスがプロビジョニング プロファイルにまだ含まれていない場合は、開発者として電子メールが届きます。これにより、追加する必要がある新しい UDID が通知されます。すべての UDID をテキスト ファイルとしてエクスポートするオプションもあります。

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

2745d49a6abc47fe.png

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

cb45477f8cc436ba.png

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

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

これらの電子メールのいずれかを受信したら、次の手順に従って、UDID を使用してプロビジョニング プロファイルを更新し、新しいビルドをテスターに​​配布します。

  1. デバイスを Apple 開発者ポータルに追加します。
  • オプション 1: デバイスの UDID を CSV ファイルとしてインポートします。 App Distribution ダッシュボードの [テスターとグループ] タブで、[すべてのテスター] を選択し、[Apple UDID のエクスポート] をクリックして CSV ファイルをダウンロードします。次に、[複数デバイスの登録] オプションを使用して、ファイルをApple 開発者アカウントにインポートします。詳細については、Apple のドキュメントを参照してください。 Apple 開発者アカウントでは、年間に限られた数のデバイスしかインポートできない場合があることに注意してください。
  • オプション 2: 電子メールで UDID を収集して入力します。 Apple 開発者ポータルの[デバイスの追加]ページで、受信した電子メールに指定されている新しい UDID を登録します。

ffb74294e68ee1c8.png

  1. 登録されたデバイスをプロビジョニング プロファイルに追加します。
  2. プロビジョニング プロファイルをダウンロードし、それを使用してアプリを再構築します。登録されたデバイスを更新するためだけに再構築する場合は、ビルド番号やバージョンを更新しないでください。
  3. Firebase コンソールまたは CLI からアプリを再配布します。同じビルド番号とバージョンのビルドをすでに配布している場合は、新しく登録したデバイスのユーザーのみが通知メールを受け取ります。

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

これで、リリースにはテスト デバイスの UDID が含まれるようになり、テスト デバイスがアプリをダウンロードしてインストールできるようになりました。 App Distribution は、テスターの UDID が新しいリリースに追加されると、テスターに​​電子メールを送信します。

a4049260bae2850b.png

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

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

お父さん6d03b6ad78746.png

  1. 物理デバイスを使用している場合は、ダウンロードを押してから、アプリをインストールして実行します。
  2. アプリが起動すると、新しいビルドのアラートを有効にするかどうかを尋ねられます。 「オンにする」を選択します

6e3540a2900734e6.png

  1. 次に、サインインを求められます。「続行」をクリックします。

82d90d7935bfaea0.png

  1. テスター アカウントでサインインします。

13bee1d03fa94ebf.png

  1. アプリに戻ります。次回アプリを実行するときに、ログインしたりアラートを受け入れたりする必要はありません。

815d6757eb5f6327.png

テスターに​​アップデートを配布する

  1. ビルド番号を「2」に更新します。

861aa63ebbc6ec54.png

  1. ビルド先として「任意の iOS デバイス (arm64)」を選択し、[製品] -> [アーカイブ] を選択します。アーカイブが生成されたら、開発配布プロファイルを使用して署名付き配布をビルドします。
  2. ビルドが完了すると、IPA ファイルといくつかのログ ファイルが指定したフォルダーに保存されます。この新しい IPA を Firebase コンソールにアップロードし、メールをテスターとして再度追加して配布します。

b6e75dc216fc3731.png

テストビルドのアラート

  1. アプリが開いている場合は、必ず閉じてください。アプリを再起動します。
  2. アプリが再起動すると、「新しいバージョンが利用可能です」というアラートが表示されます。

3bd532992df458e6.png

  1. 「更新」をクリックして最新バージョンを入手してください。
  2. 次の画面で「インストール」をクリックします。

3a761d8fa4b79d33.png

  1. おめでとう!組み込みのアラートを使用してアプリを更新できました。

6. テスターのサインインをカスタマイズする

SignInTester/signOutTesterメソッドとisTesterSignedInメソッドを使用すると、テスターのサインイン エクスペリエンスをより柔軟にカスタマイズできるため、アプリのルック アンド フィールとよりよく一致させることができます。

次の例では、テスターがすでに Firebase App Distribution テスター アカウントにサインインしているかどうかを確認するため、まだサインインしていないテスターに​​対してのみサインイン UI を表示するように選択できます。テスターがサインインした後は、 checkForUpdateを呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認します。

checkForUpdate()呼び出しをコメントアウトして、 viewDidAppearでの更新の自動チェックを無効にしましょう。

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

代わりに、 checkForUpdateButtonClicked( ) でcheckForUpdate()を呼び出しましょう。

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

次に、ユーザーがサインアウトしている場合はサインインし、既にサインインしている場合はサインアウトする、signInOutButtonClicked()メソッドを実装しましょう。

AppDistributionViewController.swift

 @objc func signInOutButtonClicked() {
    if isTesterSignedIn() {
      AppDistribution.appDistribution().signOutTester()

      self.configureCheckForUpdateButton()
      self.configureSignInSignOutButton()
      self.configureSignInStatus()

    } else {
      AppDistribution.appDistribution().signInTester(completion: { error in
        if error == nil {
          self.configureCheckForUpdateButton()
          self.configureSignInSignOutButton()
          self.configureSignInStatus()
        } else {
          let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
          uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
            _ in
          })

          self.present(uiAlert, animated: true, completion: nil)
        }
      })
    }
  }

最後にisTesterSignedI n メソッドを実装しましょう。

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

実装を構築してテストする

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

Firebase App Distribution iOS SDK を使用して「アプリ内アラート表示」機能をアプリに組み込みました。

私たちがカバーした内容

  • Firebase アプリの配布
  • Firebase アプリの配布 新しいアラート iOS SDK

次のステップ

もっと詳しく知る

質問があります?

問題を報告する