Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

fastlane을 사용하여 테스터에게 Android 앱 배포

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 문서에서는 iOS 및 Android 앱 빌드 및 릴리스를 자동화하는 오픈 소스 플랫폼인 fastlane을 사용하여 APK 빌드를 테스터에게 배포하는 방법을 설명합니다. 이 문서는 Fastfile 에 정의된 지침을 따릅니다. fastlane 및 Fastfile 설정한 후 앱 배포를 fastlane 구성과 통합할 수 있습니다.

시작하기 전에

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

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

1단계. fastlane 설정

  1. fastlane을 설치하고 설정합니다 .

  2. fastlane 구성에 앱 배포를 추가하려면 Android 프로젝트의 루트에서 다음 명령을 실행합니다.

    fastlane add_plugin firebase_app_distribution

    명령이 옵션을 묻는 메시지를 표시하면 Option 3: RubyGems.org 선택합니다.

2단계. Firebase로 인증

fastlane 플러그인을 사용하려면 먼저 다음 방법 중 하나로 Firebase 프로젝트에 인증해야 합니다. 기본적으로 fastlane 플러그인은 다른 인증 방법이 사용되지 않는 경우 Firebase CLI에서 사용자 인증 정보를 찾습니다.

3단계. Fastfile 설정 및 앱 배포

  1. ./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>

빌드를 배포한 후 Firebase 콘솔의 앱 배포 대시보드에서 150일 동안 사용할 수 있습니다. 빌드가 만료되기 30일이 지나면 콘솔과 테스터의 테스트 기기 빌드 목록에 만료 알림이 나타납니다.

이전에 앱 테스트에 초대되지 않은 테스터는 시작하라는 이메일 초대를 받습니다. 기존 테스터는 새 빌드를 테스트할 준비가 되었다는 이메일 알림을 받습니다. 테스트 앱 설치 방법을 알아보려면 테스터 설정 가이드를 참조하세요. 각 테스터의 상태를 모니터링하여 초대를 수락했는지, Firebase 콘솔에서 앱을 다운로드했는지 확인할 수 있습니다.

(선택사항) 앱 배포에서 새 버전을 생성할 때마다 빌드 번호를 자동으로 증가시키려면 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 사용하여 테스터를 지정할 수도 있습니다.

firebase_app_distribution_add_testersfirebase_app_distribution_remove_testers 작업은 다음 인수도 허용합니다.

  • project_name : Firebase 프로젝트 번호입니다.
  • service_credentials_file : Google 서비스 자격 증명 파일의 경로입니다.
  • firebase_cli_token : Firebase CLI용 인증 토큰입니다.

service_credentials_filefirebase_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

부울 플래그입니다. 자세한 디버그 출력을 인쇄하려면 이를 true 로 설정할 수 있습니다.

다음 단계

CI/CD를 사용하여 QA 테스터에게 Android 앱을 배포하는 모범 사례를 알아보세요.