선택사항인 Firebase App Distribution iOS 및 Android SDK를 사용하면 앱의 새 빌드를 사용할 수 있게 되면 테스터에게 인앱 알림 설치해야 합니다 이 가이드에서는 App Distribution iOS 및 Android SDK를 사용하는 방법을 설명합니다. 을 사용하여 테스터를 위한 새 빌드 알림을 만들고 맞춤설정합니다.
시작하기 전에
아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다.
1단계: App Distribution Tester API 사용 설정
다음에서 프로젝트를 선택합니다. Google Cloud 콘솔.
Firebase App Testers API에서 사용 설정을 클릭합니다.
2단계: 앱에 App Distribution 추가
App Distribution Android SDK는 다음 두 라이브러리로 구성됩니다.
firebase-appdistribution-api
- 모든 빌드 변형에 포함할 수 있는 API 전용 라이브러리입니다.firebase-appdistribution
- 전체 SDK 구현입니다(선택사항).
API 전용 라이브러리에서는 코드가 SDK를 호출할 수 있습니다. 전체 SDK 구현이 없으면 호출이 효과가 없습니다.
모듈에서 App Distribution Android SDK의 종속 항목 선언
(앱 수준) Gradle 파일 (일반적으로 <project>/<app-module>/build.gradle.kts
또는
<project>/<app-module>/build.gradle
)을 입력합니다. 전체 SDK가 포함되지 않도록 하는 방법
구현의 자체 업데이트 기능을 Play 빌드에 사용하고
모든 파일에 API 전용 라이브러리 종속 항목을
빌드 변형.
독점적인 변형에만 전체 SDK 구현을 추가하세요.
사용할 수 있습니다
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta13")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta13")
}
Kotlin 전용 라이브러리 모듈을 찾고 계신가요? 먼저 2023년 10월 출시, Kotlin 및 Java 개발자 모두 기본 라이브러리 모듈에 의존할 수 있음 (자세한 내용은 이 이니셔티브에 관한 FAQ).
3단계: 인앱 알림 구성
App Distribution Android SDK는 다음과 같은 설정 방법을 제공합니다. 테스터를 위한 인앱 빌드 알림:
- 테스터에게 표시할 사전 빌드된 앱 업데이트 및 로그인 대화상자와 함께 제공되는 기본 알림 구성
- 자체 사용자 인터페이스를 맞춤설정할 수 있는 고급 알림 구성
App Distribution Android SDK를 처음 사용하는 경우 기본 구성(기본 구성 사용)
기본 구성
updateIfNewReleaseAvailable
을 사용하여 아직 알림을 사용 설정하지 않은 테스터에게 사전 빌드된 알림 사용 설정 대화상자를 표시한 다음 새 빌드를 사용할 수 있는지 확인합니다. 이 메서드를 호출하면 다음과 같은 순서가 적용됩니다.
테스터가 알림을 사용 설정했는지 확인합니다. 테스터가 아직 사용 설정하지 않은 경우 알림이 있으면 이 메서드는 테스터에게 다음 명령어로 App Distribution에 로그인하라는 메시지를 표시합니다. Google 계정에 액세스할 수 있습니다.
테스터가 설치할 수 있는 최신 빌드를 확인합니다.
테스터에게 업데이트하라는 사전 빌드된 알림을 표시합니다.
새 빌드가 Android App Bundle (AAB)인 경우 테스터를 다음으로 리디렉션합니다. Google Play를 눌러 업데이트 프로세스를 완료합니다.
새 빌드가 Android 애플리케이션 패키지(APK)인 경우 SDK가 백그라운드에서 새 빌드를 다운로드하고 다운로드가 완료되면 테스터에게 설치하라는 메시지를 표시합니다. SDK가
NotificationManager
를 사용하여 다운로드 진행률 알림을 사용자에게 보냅니다. 또한updateIfNewReleaseAvailable
태스크에onProgressUpdate
핸들러를 연결하여 자체 진행률 표시기를 추가할 수도 있습니다.
언제든지 앱에서 updateIfNewReleaseAvailable
을 호출할 수 있습니다. 예를 들어 앱 기본 활동의 onResume
메서드 중에 updateIfNewReleaseAvailable
을 호출할 수 있습니다.
다음 예시에서는 테스터가 알림을 사용 설정했는지, 새 빌드에 액세스할 수 있는지 확인합니다. 이러한 조건이 충족되면 빌드를 설치할 수 있을 때 대화상자가 표시됩니다.
Kotlin+KTX
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
// (Optional) Handle errors.
if (e is FirebaseAppDistributionException) {
when (e.errorCode) {
Status.NOT_IMPLEMENTED -> {
// SDK did nothing. This is expected when building for Play.
}
else -> {
// Handle other errors.
}
}
}
}
Java
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener(updateProgress -> {
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
})
.addOnFailureListener(e -> {
// (Optional) Handle errors.
if (e instanceof FirebaseAppDistributionException) {
switch (((FirebaseAppDistributionException)e).getErrorCode()) {
case NOT_IMPLEMENTED:
// SDK did nothing. This is expected when building for Play.
break;
default:
// Handle other errors.
break;
}
}
});
고급 구성
고급 로그인 구성
signInTester
및 isTesterSignedIn
메서드를 사용하면 테스터의 로그인 환경을 더 유연하게 맞춤설정할 수 있으므로 테스터 환경을 앱의 디자인과 분위기에 보다 잘 맞게 만들 수 있습니다.
다음 예시에서는 테스터가
App Distribution 테스터 계정. 이렇게 하면 아직 로그인하지 않은 테스터에게만 로그인 사용자 인터페이스(UI)를 표시할 수 있습니다. 후(After)
테스터가 로그인하면 updateIfNewReleaseAvailable
를 호출하여 확인할 수 있습니다.
테스터가 새 빌드에 액세스할 수 있는지 여부
Kotlin+KTX
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
// Handle failed update.
}
}
Java
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
// Handle failed update.
});
}
로그인 UI에서 테스터가 계속 진행을 선택하면 signInTester()
를 호출합니다.
Kotlin+KTX
firebaseAppDistribution.signInTester().addOnSuccessListener {
// Handle successful sign-in.
}.addOnFailureListener {
// Handle failed sign-in.
});
Java
firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
// Handle successful sign-in.
}).addOnFailureListener(e -> {
// Handle failed sign-in.
});
고급 업데이트 구성
checkForNewRelease
및 updateApp
메서드를 사용하면 테스터에게 업데이트하라는 메시지가 표시되는 시점을 더 유연하게 맞춤설정할 수 있습니다. 또한 사전 빌드된 업데이트 대화상자 및 다운로드 진행률 표시기를 맞춤설정하여 앱의 디자인과 분위기에 보다 잘 맞게 만들 수 있습니다.
updateApp
은 다운로드 진행률 표시를 제공하지 않습니다. 즉, 일종의 인앱 상태 표시인 NotificationManager
또는 다른 접근 방식을 사용하여 자체 진행률 표시를 구현해야 합니다.
다음 예시에서는 새 출시 버전을 사용할 수 있는지 확인한 다음 커스텀 UI를 표시합니다. checkForNewRelease
및 updateApp
을 호출하기 전에 고급 로그인 구성을 사용하여 테스터가 로그인했는지 확인하세요.
Kotlin+KTX
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
if (release != null) {
// New release available. Start your update UI here.
}
}.addOnFailureListener {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
}
Java
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
if (release != null) {
// New release available. Start your update UI here.
}
}).addOnFailureListener(e -> {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
});
테스터가 업데이트 UI에서 업데이트를 계속하도록 선택하면 updateApp()
을 호출합니다.
Kotlin+KTX
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
4단계: 구현 빌드 및 테스트
다음과 같은 방법으로 앱을 빌드하고 구현을 테스트합니다. 빌드를 배포하는 데 필요한 Firebase 콘솔을 사용하여 테스터에게 제공할 수 있습니다
App Distribution 문제 해결 가이드 다음과 같은 일반적인 문제에 대한 도움을 받을 수 있습니다.
- 테스터가 인앱 알림을 받지 못함
- 테스터에게 Google에 로그인하라는 메시지가 두 번 이상 표시됨