オプションの Firebase App Distribution iOS および Android SDK を使用すると、アプリの新しいビルドをインストールできるようになったときに、アプリ内アラートをテスターに表示できます。このガイドでは、App Distribution iOS および Android SDK を使用して、テスター向けの新しいビルド アラートを作成およびカスタマイズする方法について説明します。
あなたが始める前に
Firebase を iOS プロジェクトにまだ追加していない場合は追加します。
ステップ 1 : App Distribution Tester API を有効にする
Google Cloud Consoleでプロジェクトを選択します。
[ Firebase App Testers API ] で、[有効にする ] をクリックします。
ステップ 2 : App Distribution をアプリに追加する
プロジェクト用に作成した Podfile を開き (または
pod init
を実行して作成し)、ターゲット セクション内に次の行を追加します。pod 'FirebaseAppDistribution'
podfile のディレクトリーで
pod install
を実行し、作成された.xcworkspace
ファイルを開きます。App
構造体またはUIApplicationDelegate
に Firebase モジュールをインポートします。迅速
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
アプリ デリゲートの
application(_:didFinishLaunchingWithOptions:)
メソッドでFirebaseApp
共有インスタンスを構成します。迅速
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
スウィズリングが無効になっている場合、
application(_:open:options:)
の実装で、開いている URL を App Distribution SDK に渡します。迅速
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if AppDistribution.appDistribution().application(application, open: url, options: options) { return true } // Handle other non-Firebase URLs here. return false }
Objective-C
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options { if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) { return YES; } // Handle other non-Firebase URLs here. return NO; }
最後に、アプリを再コンパイルします。
ステップ 3 : アプリ内アラートを構成する
App Distribution SDK は、テスター向けにアプリ内ビルド アラートを設定する 2 つの方法を提供します。テスターに表示するビルド済みのアプリの更新とサインイン ダイアログが付属する基本的なアラート構成と、独自のユーザー インターフェイスをカスタマイズできます。 App Distribution SDK を初めて使用する場合は、最初に基本的なアラート構成を使用することをお勧めします。
基本構成
checkForUpdate
を使用して、アラートをまだ有効にしていないテスターに、ビルド済みのアラートを有効にするダイアログを表示し、新しいビルドが利用可能かどうかを確認します。呼び出されると、メソッドは次のシーケンスを実行します。
Google アカウントで App Distribution にサインインするようテスターに促して、テスターがアラートを有効にしているかどうかを確認します。
テスターがまだアラートを有効にしていない場合は、事前に作成されたダイアログが表示されます。
アラートの有効化は、テスト デバイスでの 1 回限りのプロセスであり、アプリの更新後も維持されます。アプリがアンインストールされるか、
signOutTester
メソッドが呼び出されるまで、アラートはテスト デバイスで有効なままになります。詳細については、メソッドのリファレンス ドキュメント ( SwiftまたはObjective-C ) を参照してください。テスターがインストールするために新しく利用可能なビルドをチェックします。
アプリの任意の時点でcheckForUpdate()
を呼び出すことができます。たとえば、アプリのルート ビューのonAppear(perform:)
にcheckForUpdate()
を含めることで、起動時に新しく利用可能なビルドをインストールするようテスターに促すことができます。
次の例では、テスターがアラートを有効にして新しいビルドにアクセスできるかどうかを確認し、アクセスできる場合は、ビルドがインストール可能になったときにダイアログを表示します。
迅速
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
if error != nil {
// Handle error
return
}
guard let release = release else {
return
}
// Customize your alerts here.
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
let 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 should be a UIViewController.
self.present(uialert, animated: true, completion: nil)
})
Objective-C
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
if (error) {
// Handle error
return;
}
if (release) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
[alert addAction:updateAction];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];
}
}];
詳細設定
メソッドsignInTester()
およびisTesterSignedIn
を使用すると、テスターのサインイン エクスペリエンスをより柔軟にカスタマイズできるため、アプリのルック アンド フィールにより適合させることができます。
次の例では、テスターが Firebase App Distribution テスター アカウントに既にサインインしているかどうかを確認するため、まだサインインしていないテスターにのみサインイン UI を表示することを選択できます。テスターがサインインしたら、次のことができます。 checkForUpdate()
を呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認します。
迅速
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().signInTester (completion: { error in
// completion block for signInTester
if (error != nil) {
// handle failed sign in
return
}
// handle successful sign in
})
}
// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// completion block for check for update
})
}
Objective-C
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
signInTesterWithCompletion:^(NSError *_Nullable error) {
// completion block for signInTester
if (error) {
// handle failed sign in
return;
}
// handle successful sign in
}];
}
// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
// completion block for check for update
}];
}
signOutTester()
を含むその他のメソッドについては、 SwiftおよびObjective-Cの App Distribution リファレンス ドキュメントを参照してください。
ステップ 4 : 実装をビルドしてテストする
最後に、アプリをビルドし、Firebase コンソールを使用してテスターにビルドを配布して実装をテストします。
次のような一般的な問題のヘルプについては、 App Distribution のトラブルシューティング ガイドにアクセスしてください。
- テスターがアプリ内アラートを受信しない
- テスターが Google に複数回サインインするよう求められる