선택사항인 Firebase App Distribution iOS 및 Android SDK를 사용하면 앱의 새 빌드를 사용할 수 있게 되면 테스터에게 인앱 알림 설치해야 합니다 이 가이드에서는 App Distribution iOS 및 Android SDK를 사용하는 방법을 설명합니다. 을 사용하여 테스터를 위한 새 빌드 알림을 만들고 맞춤설정합니다.
시작하기 전에
아직 추가하지 않았다면 iOS 프로젝트에 Firebase를 추가합니다.
1단계: App Distribution Tester API 사용 설정
다음에서 프로젝트를 선택합니다. Google Cloud 콘솔.
Firebase App Testers API에서 사용 설정을 클릭합니다.
2단계: 앱에 App Distribution 추가
프로젝트용으로 만든 Podfile을 열거나
pod init
을 실행하여 Podfile을 만든 후 대상 섹션 안에 다음 줄을 추가합니다.pod 'FirebaseAppDistribution'
podfile 디렉터리에서
pod install
을 실행한 다음 만든.xcworkspace
파일을 엽니다.App
구조체 또는UIApplicationDelegate
에서 Firebase 모듈을 가져옵니다.Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
앱 대리자의
application(_:didFinishLaunchingWithOptions:)
메서드에서FirebaseApp
공유 인스턴스를 구성합니다.Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
재구성이 비활성화된 경우 열린 URL을 App Distribution SDK에
application(_:open:options:)
구현은 다음과 같습니다.Swift
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는 앱의 인앱 빌드 알림을 설정하는 두 가지 방법을 제공합니다. 테스터: 사전 빌드된 앱 업데이트와 함께 제공되는 기본 알림 구성 테스터에게 표시할 로그인 대화상자 및 고급 알림 자체 사용자 인터페이스를 맞춤설정할 수 있습니다. 이 기능을 처음 사용하는 경우에는 기본 알림 구성을 사용하는 것이 좋습니다 App Distribution SDK
기본 구성
checkForUpdate
를 사용하여 아직 알림을 사용 설정하지 않은 테스터에게 사전 빌드된 알림 사용 설정 대화상자를 표시한 다음 새 빌드를 사용할 수 있는지 확인합니다. 이 메서드를 호출하면 다음과 같은 순서가 적용됩니다.
테스터에게 로그인하라는 메시지를 표시하여 알림을 사용 설정했는지 확인합니다. Google 계정으로 App Distribution하세요.
테스터가 아직 알림을 사용 설정하지 않은 경우 사전 빌드된 대화상자를 표시합니다.
알림 사용 설정은 테스트 기기에서 한 번만 진행하면 되며 앱 업데이트 전반에서 유지됩니다. 알림은 앱이 제거되거나
signOutTester
메서드가 호출될 때까지 테스트 기기에서 사용 설정된 상태로 유지됩니다. 자세한 내용은 메서드의 참조 문서(Swift 또는 Objective-C)를 참조하세요.테스터가 설치할 수 있는 최신 빌드를 확인합니다.
언제든지 앱에서 checkForUpdate()
를 호출할 수 있습니다. 예를 들어 앱 루트 보기의 onAppear(perform:)
에 checkForUpdate()
를 포함하여 시작 시 테스터에게 최신 빌드를 설치하라는 메시지를 표시할 수 있습니다.
다음 예시에서는 테스터가 알림을 사용 설정했는지, 새 빌드에 액세스할 수 있는지 여부를 확인한 후 모두 해당한다면 빌드를 설치할 수 있을 때 대화상자를 표시합니다.
Swift
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()
를 호출하여 테스터가
새 빌드에 액세스할 수 있습니다
Swift
// 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()
를 비롯한 추가 메서드에 관한 자세한 내용은
App Distribution 참조 문서를 확인하세요.
스위프트
및 Objective-C입니다.
4단계: 구현 빌드 및 테스트
마지막으로 다음과 같이 앱을 빌드하고 구현을 테스트합니다. 빌드를 배포하는 데 필요한 Firebase 콘솔을 사용하여 테스터에게 제공할 수 있습니다
App Distribution 문제 해결 가이드 다음과 같은 일반적인 문제에 대한 도움을 받을 수 있습니다.
- 테스터가 인앱 알림을 받지 못함
- 테스터에게 Google에 로그인하라는 메시지가 두 번 이상 표시됨