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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

1。概要

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

学習内容

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

必要なもの

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

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

読み通すだけそれを読んで演習を完了してください

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

初心者中級熟練した

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

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

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

このプロジェクトで Google アナリティクスを有効にする必要はありません。

  1. [プロジェクトを作成] をクリックします。

アプリを Firebase に追加する

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

プロンプトが表示されたら、プロジェクトの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 アプリと一致するようにバンドル ID を更新します

左側のメニューで、 AppDistributionExample をダブルクリックします。次に、[一般] タブを見つけて、バンドル ID を Firebase アプリのバンドル ID と一致するように変更します。これはプロジェクト設定で確認できます。これは「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 をアプリに追加し、アプリの新しいビルドをインストールできるようになったときにアプリ内アラートをテスターに​​表示します。これを行うには、「Firebase Codelab」プロジェクトに対してFirebase App Testers APIが有効になっていることを確認してください (Google Cloud Console で)。同じアカウントでログインし、上部のドロップダウン メニューから正しいプロジェクトを選択する必要があります。

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

App Distribution SDK は、テスター向けにアプリ内ビルド アラートを設定する 2 つの方法を提供します。テスターに​​表示する事前構築済みのサインイン ダイアログが付属する基本的なアラート構成と、次のことができる高度なアラート構成です。独自のユーザー インターフェイス (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 コンソールのApp Distribution ページを開きます。プロンプトが表示されたら、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テスター Web アプリで、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 ファイルをダウンロードします。次に、Register Multiple Devices オプションを使用して、 Apple 開発者アカウントにファイルをインポートします。詳細については、 Apple のドキュメントを参照してください。 Apple 開発者アカウントでは、1 年間に限られた数のデバイスしかインポートできない場合があることに注意してください。
  • オプション 2: 電子メールで UDID を収集して入力します。 Apple デベロッパー ポータルの [デバイスの追加]ページで、受信したメールに記載されている新しい UDID を登録します。

ffb74294e68ee1c8.png

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

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

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

a4049260bae2850b.png

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

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

dad6d03b6ad78746.png

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

6e3540a2900734e6.png

  1. 次に、サインインするよう求められます。[続行] をクリックします。

82d90d7935bfaea0.png

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

13bee1d03fa94ebf.png

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

815d6757eb5f6327.png

テスターに​​更新を配布する

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

861aa63ebbc6ec54.png

  1. ビルド先として「Any iOS Device (arm64)」を選択し、Product->Archive.アーカイブが生成されたら、開発配布プロファイルを使用して署名付き配布をビルドします。
  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)
        }
      })
    }
  }

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

AppDistributionViewController.swift

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

実装をビルドしてテストする

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

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

カバーした内容

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

次のステップ

もっと詳しく知る

質問があります?

問題を報告する