Gradle을 사용하여 Android 앱 배포

앱 배포 Gradle 플러그인을 사용하여 Android 빌드 프로세스에 앱 배포를 통합할 수 있습니다. 플러그인을 사용하면 앱의 build.gradle 파일에 테스터와 출시 노트를 지정하여 앱의 다양한 빌드 유형과 변형에 대한 배포를 구성할 수 있습니다.

시작하기 전에

아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다.

다른 Firebase 제품을 사용하지 않는 경우 프로젝트를 만들고 앱을 등록하기만 하면 됩니다. 그러나 이후에 추가 제품을 사용할 경우 위에 링크된 페이지의 모든 단계를 완료해야 합니다.

1단계. Android 프로젝트 설정

  1. 프로젝트 수준 Gradle 파일(일반적으로 android/build.gradle)에서 앱 배포 플러그인을 buildscript 종속 항목으로 추가합니다.

    buildscript {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
            jcenter()
        }
        dependencies {
            // Add the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:2.0.1'
        }
    }
    
  2. 앱 수준 Gradle 파일(일반적으로 android/app/build.gradle)에서 Android 플러그인 아래에 앱 배포 플러그인을 포함합니다.

    apply plugin: 'com.android.application'
    // ...
    
    // Apply the App Distribution Gradle plugin
    apply plugin: 'com.google.firebase.appdistribution'
    // ...
    
  3. 회사에서 프록시 또는 방화벽을 사용할 경우 앱 배포에서 Firebase에 배포 항목을 업로드할 수 있도록 다음 자바 시스템 속성을 추가합니다.

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

2단계. Firebase 인증

Fastlane 플러그인을 사용하려면 먼저 Firebase 프로젝트로 인증해야 합니다. 다음 3가지 방법으로 인증할 수 있습니다.

3단계: 배포 속성 구성

  1. app/build.gradle 파일에서 firebaseAppDistribution 섹션을 하나 이상 추가하여 앱 배포를 구성합니다. 빌드 유형과 제품 변형 모두에 대해 앱 배포를 구성할 수 있습니다. 예를 들어 release 빌드를 테스터에게 배포하려면 다음과 같이 합니다.

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    

    debugrelease 빌드를 'demo' 및 'full' 제품 버전으로 배포하려면 다음을 수행합니다.

    android {
    
        // ...
    
        buildTypes {
            debug {...}
            release {...}
        }
    
        flavorDimensions "version"
        productFlavors {
          demo {
              dimension "version"
              firebaseAppDistribution {
                  releaseNotes="Release notes for demo version"
                  testers="demo@testers.com"
              }
          }
          full {
              dimension "version"
              firebaseAppDistribution {
                  releaseNotes="Release notes for full version"
                  testers="full@testers.com"
              }
          }
        }
    
        // ...
    }
    

다음 매개변수를 사용하여 앱 배포를 구성합니다.

앱 배포 빌드 매개변수
appId

앱의 Firebase 앱 ID입니다. Google 서비스 Gradle 플러그인이 설치되어 있지 않은 경우에만 필요합니다. google-services.json 파일 또는 Firebase Console의 일반 설정 페이지에서 앱 ID를 찾을 수 있습니다. build.gradle 파일의 값이 google-services 플러그인의 값 출력을 재정의합니다.

serviceCredentialsFile

서비스 계정 비공개 키 JSON 파일의 경로입니다. 서비스 계정 인증을 사용할 경우에만 필요합니다.

apkPath

업로드할 APK 파일의 절대 또는 상대 경로입니다. 지정하지 않으면 Gradle은 APK 출력 디렉터리를 사용하여 파일 위치를 확인합니다.

releaseNotes 또는 releaseNotesFile

이 빌드의 출시 노트입니다.

출시 노트를 직접 지정하거나 일반 텍스트 파일의 경로를 지정할 수 있습니다.

testers 또는 testersFile

빌드를 배포할 테스터의 이메일 주소입니다.

쉼표로 구분된 이메일 주소 목록으로 테스터를 지정할 수 있습니다.


testers="ali@example.com, bri@example.com, cal@example.com"

또는 쉼표로 구분된 이메일 주소 목록이 포함된 파일의 경로를 지정할 수 있습니다.


testersFile="/path/to/testers.txt"
groups 또는 groupsFile

빌드를 배포할 테스터 그룹입니다. 테스터 관리를 참조하세요. Firebase 앱 배포 콘솔의 테스터 탭에서 찾을 수 있는 그룹 별칭을 사용하여 그룹을 지정합니다.

쉼표로 구분된 그룹 별칭 목록으로 그룹을 지정할 수 있습니다.


groups="qa-team, android-testers"

또는 쉼표로 구분된 그룹 별칭 목록이 포함된 파일의 경로를 지정할 수 있습니다.


groupsFile="/path/to/tester-groups.txt"
stacktrace

사용자 예외의 스택 추적을 출력합니다. 이렇게 하면 문제를 디버깅할 때 유용합니다.

4단계. 테스터에 앱 배포

마지막으로 테스트 앱을 패키징하고 테스터를 초대하려면 assembleBUILD-VARIANTappDistributionUploadBUILD-VARIANT 대상을 프로젝트의 Gradle 래퍼를 사용하여 빌드합니다. 여기서 BUILD-VARIANT는 이전 단계에서 구성한 선택적 제품 버전과 빌드 유형입니다.

예를 들어 release 빌드 변형을 사용하여 앱을 배포하려면 다음 명령어를 실행합니다.

./gradlew assembleRelease appDistributionUploadRelease

또는 Google 계정을 사용하여 인증했거나 Gradle 빌드 파일에 사용자 인증 정보를 제공하지 않은 경우에는 FIREBASE_TOKEN 변수를 포함합니다.

export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
./gradlew --stop // Only needed for environment variable changes
./gradlew assembleRelease appDistributionUploadRelease

신규 테스터는 앱 테스트를 시작할 수 있는 이메일 초대를 받습니다(앱 설치 방법에 대한 안내는 테스터 설정 가이드 참조). 기존 테스터는 새 빌드를 테스트할 수 있는 이메일 알림을 받습니다.

제품 버전에 대한 자세한 내용은 빌드 변형 구성을 참조하세요.