CI/CD를 사용하여 QA 테스터에 Android 앱을 배포할 때의 권장사항

이 문서에서는 Firebase App Distribution를 사용하여 다음을 수행하기 위한 권장사항을 소개합니다. Android 출시 전 테스트 워크플로를 지속 가능하고 CI/CD 환경. 솔루션에는 Gradle과 fastlane이 포함되어 있지만 또한 Firebase Console, Firebase CLI, 공개 Firebase App Distribution API 최적의 환경을 위해 사전에 계획할 수 있도록 출시 및 테스터 한도도 설명합니다.

Apple 플랫폼도 사용하는 경우 CI/CD 및 fastlane을 사용하여 QA 테스터에 Apple 앱을 배포할 때의 권장사항을 참조하세요.

시작하기 전에

이 문서의 권장사항을 구현하기 전에 각 앱Firebase 콘솔에서 App Distribution. 아직 하지 않으셨다면 App Distribution를 사용 설정하면 404 오류가 발생합니다.

App Distribution를 사용 설정하려면 다음 단계를 따르세요.

  1. Firebase 콘솔에서 App Distribution 페이지를 엽니다.
  2. Android 앱을 선택합니다.
  3. 시작하기를 클릭합니다.

Android App Bundle (AAB)이 가장 일반적인 Android가 되고 있다는 점을 고려하면 패키지 형식의 경우 AAB를 배포하는 기능을 설정하는 것이 좋습니다. Google Play에 연결하여 테스터에게 문제를 해결하세요.

CI/CD 파이프라인을 사용하여 출시 전 테스트 워크플로 자동화

앱을 자동으로 빌드하고 테스터에게 출시하려면 CI/CD를 사용하는 경우 fastlane 또는 Gradle을 사용하는 것이 좋습니다. 또 다른 옵션은 Firebase CLI를 사용하는 것입니다. 다양한 Firebase 제품에 액세스할 수 있습니다.

fastlane 사용

오픈소스인 fastlane을 사용하여 CI/CD 파이프라인에 App Distribution를 통합합니다. 이 도구는 iOS 및 Android 앱의 빌드 및 출시를 자동화합니다. 최신 출시 버전을 자동으로 빌드하고 테스터에 배포함으로써 테스터가 항상 최신 버전의 테스트 앱을 사용할 수 있습니다.

App Distribution를 fastlane과 통합하는 방법을 알아보려면 fastlane을 사용하여 테스터에 Android 앱 배포를 참고하세요.

Gradle 사용

Gradle을 사용하여 다음을 사용하여 App Distribution를 Android 빌드 프로세스에 통합합니다. App Distribution Gradle 플러그인 플러그인을 사용하면 테스터를 지정하고 앱의 build.gradle 파일에 출시 노트를 추가합니다. 이 방법을 사용하면 여러 빌드 유형 및 변형의 배포판을 표시합니다.

App Distribution를 Gradle과 통합하는 방법은 다음을 참고하세요. Gradle을 사용하여 테스터에게 Android 앱 배포.

Firebase CLI 사용

App Distribution에서 제공하는 Firebase CLI 도구를 사용하여 배포 프로그래매틱 방식으로 테스터에게 빌드할 수 있습니다 빌드의 테스터와 출시 노트를 지정할 수 있습니다.

앱의 Firebase 앱 ID를 지정하고 필요에 따라 출시 노트 및 테스터 이메일이 포함된 파일을 추가하여 최신 Android 빌드를 배포합니다.

firebase appdistribution:distribute test.aab  \
    --app 1:1234567890:android:0a1b2c3d4e5f67890  \
    --release-notes "Bug fixes and improvements" --testers-file testers.txt

Firebase CLI를 사용하여 빌드를 자동화하는 방법에 대해 자세히 알아보려면 Firebase CLI를 사용하여 테스터에 Android 앱 배포를 참조하세요.

서비스 사용자 인증 정보를 사용하여 인증

App Distribution fastlane 플러그인을 사용합니다. Gradle 플러그인 서비스 계정이 있는 Firebase CLI를 사용할 수 있습니다 서비스 계정 는 사용자가 아닌 애플리케이션을 나타내는 Google 계정의 한 유형입니다. CI 시스템은 서비스 계정을 사용하여 App Distribution 워크로드를 실행할 수 있습니다. 자세한 내용은 서비스 계정으로 인증을 참고하세요.

워크로드 아이덴티티 제휴를 사용 중인 경우 서비스 계정 키 대신 사용자 인증 정보 구성 파일을 생성하여 사용할 수 있습니다.

출시 버전 한도에 유의

App Distribution는 앱당 최대 1,000개의 출시 버전을 지원합니다. 즉, 출시 버전 한도를 초과하면 App Distribution에서 자동으로 한도를 초과하는 경우 가장 오래된 출시 버전이 포함됩니다 출시 한도를 관리하는 방법을 알아보려면 다음을 참고하세요. 앱 출시 버전은 얼마 동안 제공되나요?

여러 출시 버전에 동일한 테스터 집합 추가

출시 버전에 많은 테스터를 추가하려면 다음을 사용하세요. App Distribution의 일괄 테스터 관리 기능입니다.

그룹을 사용하여 여러 출시 버전에 동일한 테스터를 추가하는 것이 좋습니다. 그룹은 액세스 제어 목록 역할을 합니다. 그룹에서 테스터를 삭제하면 해당 그룹에 배포된 모든 출시 버전에 액세스할 수 없게 됩니다. 자세한 내용은 그룹에서 테스터 추가 및 삭제를 참조하세요.

관리할 테스터가 많은 경우 테스터를 일괄 추가하고 삭제할 수 있습니다. Firebase 콘솔 사용 테스터 추가 및 삭제를 자동화하려면 다음을 사용하세요. Firebase CLI fastlane Gradle 또는 공개 Firebase App Distribution API.

테스터 한도에 유의

App Distribution는 Firebase 프로젝트에 추가할 수 있는 테스터 수를 제한합니다. 또는 App Distribution 그룹 이러한 한도를 초과하면 추가 테스터에게 앱을 배포할 수 없습니다. 테스터 한도에 대해 자세히 알아보려면 앱에 테스터를 추가하는 데 한도가 있나요?를 참고하세요.

잠재적 테스터가 테스트에 직접 등록하도록 허용

더 많은 테스터에게 앱을 더 쉽게 배포하려면 초대 링크를 사용하는 것이 좋습니다. 초대 링크는 테스터가 이메일 주소를 입력하여 앱 테스트에 가입할 수 있는 고유 URL입니다. 사용자가 앱 테스터 목록에 자신을 직접 추가할 수 있도록 허용하여 내부 테스트 기반을 늘릴 수 있습니다.

초대 링크 사용 사례로는 회사 dogfood 프로그램, 대규모 QA팀이 있는 조직, 개별 클라이언트가 테스터 액세스를 제어할 수 있도록 하려는 개발자 그룹 등이 있습니다.

그룹용 초대 링크를 만드는 것이 좋습니다. 초대 링크를 사용하여 가입하는 모든 테스터는 이후 출시 버전에 자동으로 추가됩니다.

자세한 내용은 초대 링크 만들기그룹에서 테스터 추가 및 삭제를 참조하세요.

중요하게 생각하는 버전을 테스터가 테스트하는지 확인

새 버전이 업로드되면 테스터에게 이메일 알림이 전송됩니다. 이 알림을 보완하기 위해 버전 링크와 인앱 알림 같은 기능을 사용하여 테스터가 내게 중요한 특정 앱 버전을 테스트하도록 만들 수 있습니다.

  • 출시 링크: 테스터와 특정 버전을 공유하려는 경우 이 기능을 사용합니다. 출시 링크를 사용하는 방법은 다음을 참고하세요. Firebase 콘솔을 사용하여 테스터에게 Android 앱 배포 이러한 링크는 Firebase fastlane Gradle 빌드 자동화 도구와 함께 사용할 수 있는 명령줄 (CLI) 도구
  • 인앱 알림: 이 알림을 사용하면 여러 개의 테스터가 최신 버전의 앱을 테스트하고 있습니다. 또한 Firebase App Distribution Android SDK를 사용하면 내부에서 바로 알림을 표시할 수 있습니다. 앱의 새 빌드를 사용할 수 있게 되면 테스터에게 앱을 전송합니다. 배우기 위해 인앱 알림을 추가하는 방법은 테스터에게 새 빌드에 대해 알립니다.

퇴사하는 테스터의 액세스 권한 자동 삭제

CI/CD 내부 테스트 흐름이 실행되면 퇴사한 직원이 더 이상 내부 빌드에 액세스할 수 없도록 해야 합니다. 빌드에 대한 테스터 액세스를 관리할 수 있도록 App Distribution에서 다음을 제공합니다. 다음과 같은 옵션이 있습니다.