선택적 Firebase 앱 배포 iOS 및 Android SDK를 사용하면 앱의 새 빌드를 설치할 수 있을 때 테스터에게 인앱 알림을 표시할 수 있습니다. 이 가이드에서는 앱 배포 iOS 및 Android SDK를 사용하여 테스터를 위한 새 빌드 알림을 만들고 맞춤설정하는 방법을 설명합니다.
시작하기 전에
아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다 .
1단계 : App Distribution Tester API 활성화
Google Cloud Console 에서 프로젝트를 선택합니다.
Firebase App Testers API에서 사용 을 클릭합니다.
2단계 : 앱에 앱 배포 추가
앱 배포 Android SDK는 두 개의 라이브러리로 구성됩니다.
-
firebase-appdistribution-api
- 모든 빌드 변형 에 포함할 수 있는 API 전용 라이브러리입니다. -
firebase-appdistribution
- 전체 SDK 구현(선택사항).
API 전용 라이브러리를 사용하면 코드에서 SDK를 호출할 수 있습니다. 전체 SDK 구현이 없는 경우 호출은 영향을 미치지 않습니다.
모듈(앱 수준) Gradle 파일 (일반적으로 app/build.gradle
)에서 앱 배포 Android SDK에 대한 종속성을 선언합니다. Play 빌드에 전체 SDK 구현의 자체 업데이트 기능을 포함하지 않으려면 모든 빌드 변형 에 API 전용 라이브러리 종속 항목을 추가하세요. 출시 전 테스트 전용 변형에만 전체 SDK 구현을 추가하세요.
Kotlin+KTX
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta05'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta05'
}
Java
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api:16.0.0-beta05'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta05'
}
3단계 : 인앱 알림 구성
앱 배포 Android SDK는 테스터를 위해 인앱 빌드 알림을 설정하는 다음과 같은 방법을 제공합니다.
- 테스터에게 표시할 사전 빌드된 앱 업데이트 및 로그인 대화 상자와 함께 제공되는 기본 경고 구성입니다.
- 고유한 사용자 인터페이스를 사용자 지정할 수 있는 고급 알림 구성입니다.
앱 배포 Android SDK를 처음 사용하는 경우 기본 구성 을 사용하는 것이 좋습니다.
기본 구성
updateIfNewReleaseAvailable
을 사용하여 아직 경고를 활성화하지 않은 테스터에게 미리 빌드된 경고 활성화 대화 상자를 표시한 다음 새 빌드를 사용할 수 있는지 확인합니다. 메서드가 호출되면 다음 시퀀스를 실행합니다.
테스터가 경고를 활성화했는지 확인합니다. 테스터가 아직 알림을 활성화하지 않은 경우 메서드는 테스터에게 Google 계정으로 앱 배포에 로그인하라는 메시지를 표시합니다.
테스터가 설치할 수 있는 새로 사용 가능한 빌드를 확인합니다.
테스터에게 업데이트하라는 미리 작성된 알림을 표시합니다.
새 빌드가 AAB(Android App Bundle)인 경우 테스터를 Google Play로 리디렉션하여 업데이트 프로세스를 완료합니다.
새 빌드가 Android 애플리케이션 PacKage(APK)인 경우 SDK는 백그라운드에서 새 빌드를 다운로드하고 다운로드가 완료되면 테스터에게 설치하라는 메시지를 표시합니다. SDK는
NotificationManager
를 사용하여 사용자에게 다운로드 진행률 알림을 보냅니다.onProgressUpdate
처리기를updateIfNewReleaseAvailable
작업에 연결하여 고유한 진행률 표시기를 추가할 수도 있습니다.
앱의 어느 지점 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
메서드를 사용하면 테스터의 로그인 환경을 더 유연하게 맞춤설정할 수 있으므로 테스터 환경이 앱의 모양과 느낌에 더 잘 맞을 수 있습니다.
다음 예에서는 테스터가 앱 배포 테스터 계정에 이미 로그인했는지 여부를 확인합니다. 이렇게 하면 아직 로그인하지 않은 테스터에게만 로그인 UI(사용자 인터페이스)를 표시하도록 선택할 수 있습니다. 테스터가 로그인한 후 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 콘솔을 사용하여 테스터 에게 빌드를 배포 하여 앱을 빌드하고 구현을 테스트합니다.
다음과 같은 일반적인 문제에 대한 도움말은 앱 배포 문제 해결 가이드 를 참조하세요.
- 테스터가 인앱 알림을 받지 못함
- 테스터에게 Google에 로그인하라는 메시지가 두 번 이상 표시됨