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 プロジェクトを追加する
- Firebase にサインインします。
- Firebase コンソールで、 [プロジェクトの追加] をクリックし、プロジェクトに「Firebase Codelab」という名前を付けます。
このプロジェクトに対して Google Analytics を有効にする必要はありません。
- 「プロジェクトの作成」をクリックします。
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 でプロジェクトを開きます
- 同じディレクトリ内のPodfileを開きます
cd firebase-appdistribution-ios/start Open Podfile
- 次の行をポッドファイルに追加します。
ポッドファイル
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 プロジェクトのルートにドラッグします。このファイルは、プロジェクトの設定ページからいつでもダウンロードできます。
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 のアプリにアクセスできるアカウントにサインインして、アラートを有効にします。呼び出されると、メソッドは次のシーケンスを実行します。
- テスターがアラートを有効にしているかどうかを確認します。そうでない場合は、Google アカウントを使用して App Distribution にサインインするように求める事前構築されたダイアログが表示されます。
アラートの有効化はテスト デバイス上で 1 回限りのプロセスであり、アプリの更新後も継続されます。アラートは、アプリがアンインストールされるか、 signOutTester
メソッドが呼び出されるまで、テスト デバイス上で有効なままになります。詳細については、メソッドのリファレンス ドキュメント ( SwiftまたはObjective-C ) を参照してください。
アプリのどの時点でもcheckForUpdate
を含めることができます。たとえば、 UIViewControllerのviewDidAppearにcheckForUpdate を含めることで、起動時に新しく利用可能なビルドをインストールするようにテスターに促すことができます。
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)」を選択し、[製品] > [アーカイブ] を選択します。アーカイブが作成されたら、開発配布プロファイルを使用して署名付き配布を構築します。
ビルドが完了すると、IPA ファイルといくつかのログ ファイルが指定したフォルダーに保存されます。次の手順で IPA ファイルをテスターに配布します。
アプリの構築中に問題が発生した場合は、トラブルシューティング手順についてApple の共同署名ドキュメントを参照してください。
アプリをテスターに配布する
アプリをテスターに配布するには、Firebase コンソールを使用して IPA ファイルをアップロードします。
- Firebase コンソールの[アプリ配布] ページを開きます。プロンプトが表示されたら、Firebase プロジェクトを選択します。
- 「はじめる」を押してください
- [リリース] ページで、配布するアプリをドロップダウン メニューから選択します。
- アプリの IPA ファイルをコンソールにドラッグしてアップロードします。
- アップロードが完了したら、ビルドを受け取りたいテスター グループと個々のテスターを指定します。 (招待を受信するには電子メールを追加してください。) 次に、ビルドのリリース ノートを追加します。テスター グループの作成の詳細については、 「テスターの管理」を参照してください。
- [配布] をクリックして、テスターがビルドを利用できるようにします。
自分自身をテスターとしてリリースに追加します
Firebase コンソールで、アプリのリリース時に追加したテスターが表示されるようになりました。
メール アドレスを入力したため、Firebase App Distribution からアプリのテストを招待するメールが届きます。これであなたが最初のテスターです!以下のセクションに進み、テスト デバイスでテスターとしてセットアップします。
テストデバイスを登録する
アドホック リリースをダウンロードしてテストするには、まずテスト デバイスを登録する必要があります。
- iOS テスト デバイスで、Firebase App Distribution から送信されたメールを開き、[始める] リンクをタップします。必ず Safari でリンクを開いてください。
- 表示されるFirebase App Distributionテスター ウェブ アプリで、Google アカウントでサインインし、 [招待を受け入れる] をタップします。
これで、招待されたリリースが表示されます。
- [デバイスの登録]をタップして UDID を Firebase と共有し、後でアプリのプロビジョニング プロファイルを更新できるようにします。
- 指示に従い、設定に移動してプロファイルをダウンロードし、UDID を共有します。
ここで、App Distribution に戻ると、リリースは「デバイスが登録済み」としてマークされます。
テスターの UDID が開発者と共有されました。テスターに新しいバージョンのアプリを構築するかどうかは、開発者の責任になります。
コンソールでテスター情報を表示する
Firebase コンソールの開発者ビューに戻ると、テスターはリリースの下に「承認済み」として表示されます。
また、開発者が使用しているデバイスがプロビジョニング プロファイルにまだ含まれていない場合は、開発者として電子メールが届きます。これにより、追加する必要がある新しい UDID が通知されます。すべての UDID をテキスト ファイルとしてエクスポートするオプションもあります。
- すべての UDID をエクスポートするには、「テスターとグループ」タブを開きます。
- 「Apple UDID をエクスポート」をクリックします。
ファイルにはテスト デバイスの UDID が含まれている必要があります。
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
これらの電子メールのいずれかを受信したら、次の手順に従って、UDID を使用してプロビジョニング プロファイルを更新し、新しいビルドをテスターに配布します。
- デバイスを Apple 開発者ポータルに追加します。
- オプション 1: デバイスの UDID を CSV ファイルとしてインポートします。 App Distribution ダッシュボードの [テスターとグループ] タブで、[すべてのテスター] を選択し、[Apple UDID のエクスポート] をクリックして CSV ファイルをダウンロードします。次に、[複数デバイスの登録] オプションを使用して、ファイルをApple 開発者アカウントにインポートします。詳細については、Apple のドキュメントを参照してください。 Apple 開発者アカウントでは、年間に限られた数のデバイスしかインポートできない場合があることに注意してください。
- オプション 2: 電子メールで UDID を収集して入力します。 Apple 開発者ポータルの[デバイスの追加]ページで、受信した電子メールに指定されている新しい UDID を登録します。
- 登録されたデバイスをプロビジョニング プロファイルに追加します。
- プロビジョニング プロファイルをダウンロードし、それを使用してアプリを再構築します。登録されたデバイスを更新するためだけに再構築する場合は、ビルド番号やバージョンを更新しないでください。
- Firebase コンソールまたは CLI からアプリを再配布します。同じビルド番号とバージョンのビルドをすでに配布している場合は、新しく登録したデバイスのユーザーのみが通知メールを受け取ります。
テストデバイスからリリースをダウンロードする
これで、リリースにはテスト デバイスの UDID が含まれるようになり、テスト デバイスがアプリをダウンロードしてインストールできるようになりました。 App Distribution は、テスターの UDID が新しいリリースに追加されると、テスターに電子メールを送信します。
- テスト デバイスで、電子メール内のリンク、またはデバイスのホーム画面のアイコンを使用して、App Distribution テスター Web アプリに戻ります。
UDID コードラボ アプリに移動すると、リリースをダウンロードする準備ができていることがわかります。
- 物理デバイスを使用している場合は、ダウンロードを押してから、アプリをインストールして実行します。
- アプリが起動すると、新しいビルドのアラートを有効にするかどうかを尋ねられます。 「オンにする」を選択します
- 次に、サインインを求められます。「続行」をクリックします。
- テスター アカウントでサインインします。
- アプリに戻ります。次回アプリを実行するときに、ログインしたりアラートを受け入れたりする必要はありません。
テスターにアップデートを配布する
- ビルド番号を「2」に更新します。
- ビルド先として「任意の iOS デバイス (arm64)」を選択し、[製品] -> [アーカイブ] を選択します。アーカイブが生成されたら、開発配布プロファイルを使用して署名付き配布をビルドします。
- ビルドが完了すると、IPA ファイルといくつかのログ ファイルが指定したフォルダーに保存されます。この新しい IPA を Firebase コンソールにアップロードし、メールをテスターとして再度追加して配布します。
テストビルドのアラート
- アプリが開いている場合は、必ず閉じてください。アプリを再起動します。
- アプリが再起動すると、「新しいバージョンが利用可能です」というアラートが表示されます。
- 「更新」をクリックして最新バージョンを入手してください。
- 次の画面で「インストール」をクリックします。
- おめでとう!組み込みのアラートを使用してアプリを更新できました。
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
次のステップ
もっと詳しく知る
質問があります?
問題を報告する