이 문서에서는 iOS 및 Android 앱 빌드 및 릴리스를 자동화하는 오픈 소스 플랫폼인 fastlane 을 사용하여 APK 빌드를 테스터에게 배포하는 방법을 설명합니다. 이 문서는 Fastfile
에 정의된 지침을 따릅니다. fastlane 및 Fastfile
을 설정한 후 앱 배포를 fastlane 구성과 통합할 수 있습니다.
시작하기 전에
아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다 .
다른 Firebase 제품을 사용하지 않는 경우 프로젝트를 만들고 앱을 등록하기만 하면 됩니다. 그러나 향후 추가 제품을 사용하기로 결정한 경우 위에 링크된 페이지의 모든 단계를 완료해야 합니다.
1단계. fastlane 설정
fastlane 구성에 앱 배포를 추가하려면 Android 프로젝트의 루트에서 다음 명령을 실행합니다.
fastlane add_plugin firebase_app_distribution
명령이 옵션을 묻는 메시지를 표시하면
Option 3: RubyGems.org
를 선택합니다.
2단계. Firebase로 인증
fastlane 플러그인을 사용하려면 먼저 다음 방법 중 하나로 Firebase 프로젝트에 인증해야 합니다. 기본적으로 fastlane 플러그인은 다른 인증 방법이 사용되지 않는 경우 Firebase CLI에서 사용자 인증 정보를 찾습니다.
서비스 계정으로 인증하면 지속적 통합(CI) 시스템에서 플러그인을 유연하게 사용할 수 있습니다. 서비스 계정 사용자 인증 정보를 제공하는 방법에는 두 가지가 있습니다.
-
firebase_app_distribution
작업에 서비스 계정 키 파일을 전달합니다. 빌드 환경에 서비스 계정 키 파일이 이미 있는 경우 이 방법이 편리할 수 있습니다. - 서비스 계정 키 파일을 가리키도록 환경 변수
GOOGLE_APPLICATION_CREDENTIALS
를 설정합니다. 다른 Google 서비스(예: Google Cloud)에 대해 애플리케이션 기본 자격 증명(ADC)을 이미 구성한 경우 이 방법을 선호할 수 있습니다.
- Google Cloud Console에서 프로젝트를 선택하고 새 서비스 계정을 만듭니다.
- Firebase 앱 배포 관리자 역할을 추가합니다.
- 개인 json 키를 만들고 빌드 환경에 액세스할 수 있는 위치로 키를 이동합니다. Firebase 프로젝트의 앱 배포에 대한 관리자 액세스 권한을 부여 하므로 이 파일을 안전한 곳에 보관 하십시오.
- 2019년 9월 20일 이후에 앱을 만든 경우 이 단계를 건너뜁니다. Google API 콘솔에서 Firebase 앱 배포 API를 활성화합니다. 메시지가 표시되면 Firebase 프로젝트와 이름이 같은 프로젝트를 선택합니다.
서비스 계정 자격 증명을 제공하거나 찾습니다.
- 레인의
firebase_app_distribution
작업에 서비스 계정 키를 전달하려면 비공개 키 JSON 파일의 경로로service_credentials_file
매개변수를 설정합니다. ADC로 자격 증명을 찾으려면 환경 변수
GOOGLE_APPLICATION_CREDENTIALS
를 개인 키 JSON 파일의 경로로 설정합니다. 예:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
ADC 인증에 대한 자세한 내용은 애플리케이션에 자격 증명 제공을 참조하세요.
- 레인의
프로젝트 인증 방법에 대한 안내 는 Firebase CLI로 로그인을 참조하세요.
3단계. Fastfile 설정 및 앱 배포
-
./fastlane/Fastfile
레인에서firebase_app_distribution
블록을 추가합니다. 다음 매개변수를 사용하여 배포를 구성합니다.firebase_app_distribution 매개변수 app
필수 : 앱의 Firebase 앱 ID입니다. 일반 설정 페이지 의 Firebase 콘솔에서 앱 ID를 찾을 수 있습니다.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
플러그인의 로그인 작업을 실행할 때(위 의 Google 계정을 사용하여 인증 참조) 또는 Firebase CLI로 CI 환경을 인증할 때(자세한 내용 은 CI 시스템에서 CLI 사용 참조) 인쇄되는 새로 고침 토큰입니다.
service_credentials_file
Google 서비스 계정 json 파일의 경로입니다. 서비스 계정 사용자 인증 정보를 사용하여 인증 하는 방법은 위를 참조하세요.
android_artifact_type
Android 파일 형식(APK 또는 AAB)을 지정합니다.
android_artifact_path
apk_path
(더 이상 사용되지 않음)를 대체합니다. 업로드하려는 APK 또는 AAB 파일의 절대 경로입니다. 지정하지 않으면 fastlane은 파일이 생성된 레인에서 파일의 위치를 결정합니다.release_notes
release_notes_file
이 빌드에 대한 릴리스 정보입니다.
릴리스 정보를 직접 지정할 수 있습니다.
release_notes: "Text of release notes"
또는 일반 텍스트 파일의 경로를 지정합니다.
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
초대하려는 테스터의 이메일 주소.
테스터를 쉼표로 구분된 이메일 주소 목록으로 지정할 수 있습니다.
testers: "ali@example.com, bri@example.com, cal@example.com"
또는 쉼표로 구분된 이메일 주소 목록이 포함된 일반 텍스트 파일의 경로를 지정할 수 있습니다.
testers_file: "/path/to/testers.txt"
groups
groups_file
초대하려는 테스터 그룹( 테스터 관리 참조). 그룹은 다음을 사용하여 지정됩니다.
그룹 별칭 , Firebase 콘솔에서 조회할 수 있습니다.쉼표로 구분된 목록으로 그룹을 지정할 수 있습니다.
groups: "qa-team, trusted-testers"
또는 쉼표로 구분된 그룹 이름 목록이 포함된 일반 텍스트 파일의 경로를 지정할 수 있습니다.
groups_file: "/path/to/groups.txt"
debug
부울 플래그입니다. 자세한 디버그 출력을 인쇄하려면 이를
true
로 설정할 수 있습니다.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # build_android_app is a built-in fastlane action. firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
테스터가 빌드를 사용할 수 있도록 레인을 실행하십시오.
fastlane <lane>
fastlane 플러그인은 릴리스 업로드 후 다음 링크를 출력합니다. 다음 링크는 바이너리를 관리하고 테스터와 다른 개발자가 올바른 릴리스를 갖도록 하는 데 도움이 됩니다.
-
firebase_console_uri
- 단일 릴리스를 표시하는 Firebase 콘솔 링크입니다. 조직의 다른 개발자와 이 링크를 공유할 수 있습니다. -
testing_uri
- 테스터가 출시 정보를 보고 기기에 앱을 설치할 수 있는 테스터 환경(Android 네이티브 앱)의 출시 링크입니다. 테스터가 링크를 사용하려면 릴리스에 액세스해야 합니다. -
binary_download_uri
- 앱 바이너리(APK 또는 AAB 파일)를 직접 다운로드하고 설치하는 서명된 링크입니다. 링크는 1시간 후에 만료됩니다.
빌드를 배포한 후 Firebase 콘솔의 앱 배포 대시보드에서 150일 동안 사용할 수 있습니다. 빌드가 만료되기 30일이 지나면 콘솔과 테스터의 테스트 기기 빌드 목록에 만료 알림이 나타납니다.
이전에 앱 테스트에 초대되지 않은 테스터는 시작하라는 이메일 초대를 받습니다. 기존 테스터는 새 빌드를 테스트할 준비가 되었다는 이메일 알림을 받습니다. 테스트 앱 설치 방법을 알아보려면 테스터 설정 가이드 를 참조하세요. 각 테스터의 상태를 모니터링하여 초대를 수락했는지, Firebase 콘솔에서 앱을 다운로드했는지 확인할 수 있습니다.
(선택사항) 앱 배포에서 새 버전을 생성할 때마다 빌드 번호를 자동으로 증가시키려면 firebase_app_distribution_get_latest_release firebase_app_distribution_get_latest_release
및 예를 들어 increment_version_code
fastlane 플러그인 을 사용할 수 있습니다. 다음 코드는 빌드 번호를 자동으로 증가시키는 방법의 예를 제공합니다.
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
firebase_app_distribution_get_latest_release
작업에 대해 자세히 알아보려면 앱의 최신 출시 정보 가져오기를 참조하세요 .
4단계(선택 사항). 배포 테스터 관리
Fastfile
파일을 사용하거나 fastlane 작업을 직접 실행하여 앱 릴리스에서 테스터를 추가하고 제거할 수 있습니다. 작업을 실행하면 Fastfile
에 설정된 값이 직접 재정의됩니다.
테스터가 Firebase 프로젝트에 추가되면 개별 릴리스에 추가할 수 있습니다. Firebase 프로젝트에서 삭제된 테스터는 더 이상 프로젝트의 출시 버전에 액세스할 수 없지만 일정 기간 동안 출시 버전에 대한 액세스 권한은 유지할 수 있습니다.
Fastfile
사용
# Use lanes to add or remove testers from an app release. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
fastlane 작업 실행
fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"
--emails 대신 --file="/path/to/testers.txt
--emails
를 사용하여 테스터를 지정할 수도 있습니다.
firebase_app_distribution_add_testers
및 firebase_app_distribution_remove_testers
작업은 다음 인수도 허용합니다.
-
project_name
: Firebase 프로젝트 번호입니다. -
service_credentials_file
: Google 서비스 자격 증명 파일의 경로입니다. -
firebase_cli_token
: Firebase CLI용 인증 토큰입니다.
service_credentials_file
및 firebase_cli_token
은 업로드 작업에서 사용되는 동일한 인수입니다.
5단계(선택 사항). 앱의 최신 릴리스에 대한 정보 얻기
firebase_app_distribution_get_latest_release
작업을 사용하여 앱 버전 정보, 출시 노트, 생성 시간을 포함하여 앱 배포에서 앱의 최신 출시에 대한 정보를 가져올 수 있습니다. 사용 사례에는 자동으로 버전을 높이고 이전 릴리스에서 릴리스 정보를 가져오는 것이 포함됩니다.
작업의 반환 값은 최신 릴리스를 나타내는 해시입니다. 이 해시는 lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
를 사용하여 사용할 수도 있습니다. 이 해시에서 사용 가능한 필드에 대한 자세한 내용은 REST API 설명서 를 참조하십시오.
매개변수
firebase_app_distribution_get_latest_release 매개변수 | |
---|---|
app | 필수 : 앱의 Firebase 앱 ID입니다. 일반 설정 페이지 의 Firebase 콘솔에서 앱 ID를 찾을 수 있습니다. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | 플러그인의 로그인 작업을 실행할 때(위 의 Google 계정을 사용하여 인증 참조) 또는 Firebase CLI로 CI 환경을 인증할 때(자세한 내용 은 CI 시스템에서 CLI 사용 참조) 인쇄되는 새로 고침 토큰입니다. |
service_credentials_file | Google 서비스 계정 json 파일의 경로입니다. 서비스 계정 사용자 인증 정보를 사용하여 인증 하는 방법은 위를 참조하세요. |
debug | 부울 플래그입니다. 자세한 디버그 출력을 인쇄하려면 이를 |
다음 단계
CI/CD를 사용하여 QA 테스터에게 Android 앱을 배포 하는 모범 사례를 알아보세요.