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

1。概要

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

あなたが学ぶこと

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

必要なもの

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

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

読むだけそれを読んで、演習を完了してください

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

初心者中級熟練している

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

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

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

このプロジェクトでGoogleAnalyticsを有効にする必要はありません。

  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. podfileに次の行を追加します。

Podfile

pod 'Firebase/AppDistribution'

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

pod install --repo-update
xed .

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

左側のメニューで、 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 DistributionSDKを使用してアプリ内の新しいビルドアラートを設定します

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

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

App Distribution SDKは、テスターに​​アプリ内ビルドアラートを設定する2つの方法を提供します。テスターに​​表示するためのビルド済みのサインインダイアログが付属する基本的なアラート構成と、次のことができる高度なアラート構成です。独自のユーザーインターフェイス(UI)をカスタマイズします。

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

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

アラートの有効化は、テストデバイスでの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 AppDistributionからアプリのテストを招待するメールが届きます。あなたは今、最初のテスターです!以下のセクションを続けて、テストデバイスでテスターとして設定します。

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

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

  1. iOSテストデバイスで、Firebase App Distributionから送信されたメールを開き、[はじめに]リンクをタップします。必ずSafariでリンクを開いてください。
  2. 表示されるFirebaseApp 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. 「AppleUDIDのエクスポート」をクリックします。

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

ffb74294e68ee1c8.png

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

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

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

a4049260bae2850b.png

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

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

dad6d03b6ad78746.png

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

6e3540a2900734e6.png

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

82d90d7935bfaea0.png

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

13bee1d03fa94ebf.png

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

815d6757eb5f6327.png

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

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

861aa63ebbc6ec54.png

  1. ビルド先として「AnyiOSDevice(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アプリの配布新しいアラートiOSSDK

次のステップ

もっと詳しく知る

質問があります?

問題を報告する