Android App Bundle 빌드 및 테스트

Android App Bundle은 여러 기기 설정에서 앱을 빌드, 게시, 배포하는 데 권장되는 방법입니다. App Bundle은 Play 기능 전송, Play Asset Delivery, 인스턴트 환경과 같은 고급 기능도 사용 설정합니다. App Bundle을 이제 막 사용하기 시작했는지 또는 고급 사용 사례를 위해 개발 중인지 여부와 관계없이 이 페이지는 각 개발 단계에서 앱을 테스트하는 데 사용할 수 있는 다양한 전략에 관한 개요를 제공합니다.

App Bundle을 처음 사용한다면 Android App Bundle 정보를 읽어보세요.

Android 스튜디오를 사용하여 App Bundle 빌드

Android 스튜디오를 사용하고 있다면 몇 번의 클릭만으로, 서명된 App Bundle로 프로젝트를 빌드할 수 있습니다. IDE를 사용하지 않는다면 명령줄에서 App Bundle을 빌드할 수 있습니다. 그런 다음 Play Console에 App Bundle을 업로드하여 앱을 테스트하거나 게시합니다.

App Bundle을 빌드하려면 다음 단계를 따르세요.

  1. Android 스튜디오 3.2 이상을 다운로드합니다. 기능 모듈을 추가하고 App Bundle을 빌드하는 가장 쉬운 방법입니다.

  2. Android 스튜디오를 사용하여 Android App Bundle을 빌드합니다. 또한 실행/디버그 구성을 수정하고 App Bundle에서 APK를 배포하는 옵션을 선택하여 App Bundle에서 앱을 연결된 기기에 배포할 수 있습니다. 이 옵션을 사용하면 APK만 빌드하고 배포할 때보다 빌드 시간이 더 늘어난다는 점을 유의하세요.

  3. Android App Bundle을 사용하여 기기에 배포할 APK를 생성함으로써 Android App Bundle을 배포합니다.

  4. 앱 Play 앱 서명에 등록합니다. 그러지 않으면 Play Console에 App Bundle을 업로드할 수 없습니다.

  5. Google Play에 App Bundle을 게시합니다.

Android 스튜디오에서 App Bundle을 사용하여 배포

앱을 Android App Bundle로 빌드하고 통합 개발 환경(IDE)에서 곧바로 연결된 기기에 배포할 수 있습니다. IDE와 Google Play는 동일한 도구를 사용하여 기기에서 APK를 추출하고 설치하므로 이 로컬 테스트 전략은 다음을 확인하는 데 도움이 됩니다.

  • 앱을 App Bundle로 빌드할 수 있습니다.
  • IDE는 App Bundle에서 대상 기기 설정을 위한 APK를 추출할 수 있습니다.
  • 기능 모듈로 분리되는 기능은 앱의 기본 모듈과 호환됩니다.
  • 앱이 대상 기기에서 예상대로 작동합니다.

기본적으로 Android 스튜디오에서 연결된 기기로 앱을 배포할 때 IDE는 대상 기기 설정을 위한 APK를 빌드하고 배포합니다. 이는 앱에서 지원하는 모든 기기 설정을 위한 App Bundle을 빌드하는 것보다 특정 기기 설정을 위한 APK를 빌드하는 것이 더 빠르기 때문입니다.

앱을 App Bundle로 빌드한 후 이 App Bundle에서 연결된 기기로 APK를 배포하는 것을 테스트하려면 다음과 같이 기본 실행/디버그 구성을 수정해야 합니다.

  1. 메뉴 바에서 Run > Edit Configurations를 선택합니다.
  2. 왼쪽 창에서 실행/디버그 구성을 선택합니다.
  3. 오른쪽 창에서 General 탭을 선택합니다.
  4. Deploy 옆의 드롭다운 메뉴에서 APK from app bundle을 선택합니다.
  5. 앱에 테스트하려는 인스턴트 앱 환경이 포함되어 있다면 Deploy as an instant app 옆의 체크박스를 선택합니다.
  6. 앱에 기능 모듈이 포함되어 있으면 각 모듈 옆의 체크박스를 선택하여 배포하려는 모듈을 선택할 수 있습니다. 기본적으로 Android 스튜디오는 모든 기능 모듈을 배포하고 항상 기본 앱 모듈을 배포합니다.
  7. Apply 또는 OK를 클릭합니다.

메뉴 바에서 Run > Run을 선택하면 Android 스튜디오는 App Bundle을 빌드하고 이를 사용하여 연결된 기기 및 개발자가 선택한 기능 모듈에 필요한 APK만 배포합니다.

명령줄에서 빌드 및 테스트

Android 스튜디오 및 Google Play에서 App Bundle을 빌드하고 이를 APK로 변환하는 데 사용하는 도구는 명령줄에서 제공됩니다. 즉, 명령줄에서 이러한 도구를 호출하여 Android App Bundle에서 앱을 로컬로 빌드하고 배포할 수 있습니다.

이러한 로컬 테스트 도구는 다음에 유용합니다.

  • 구성 가능한 App Bundle 빌드를 지속적 통합(CI) 서버 또는 다른 맞춤 빌드 환경에 통합
  • App Bundle에서 하나 이상의 연결된 테스트 기기로의 앱 배포 자동화
  • Google Play에서 연결된 기기로의 앱 다운로드 에뮬레이션

명령줄에서 App Bundle 빌드

명령줄에서 App Bundle을 빌드하려면 bundletool 또는 Android Gradle 플러그인을 사용하면 됩니다.

Android Gradle 플러그인: Google에서 만든 이 플러그인은 Android 스튜디오와 함께 번들로 제공되며 Maven 저장소로도 제공됩니다. 이 플러그인은 개발자가 명령줄에서 실행하여 App Bundle을 빌드할 수 있는 명령어를 정의합니다. 이 플러그인은 App Bundle을 빌드하는 가장 쉬운 메서드를 제공하지만 개발자는 bundletool을 통해 이를 사용하여 앱을 테스트 기기에 배포해야 합니다.

bundletool: 이 명령줄 도구는 Android Gradle 플러그인과 Google Play에서 모두 앱을 App Bundle로 빌드하는 데 사용하는 도구이며, GitHub에서 제공됩니다. bundletool을 사용하여 App Bundle을 빌드하는 것은 플러그인을 사용하여 단순히 Gradle 작업을 실행하는 것보다 훨씬 더 복잡합니다. 이는 플러그인이 App Bundle을 빌드하기 위한 특정 사전 요구사항을 자동화하기 때문입니다. 그러나 이 도구는 CI 워크플로에서 App Bundle 아티팩트를 생성하려는 개발자에게 유용합니다.

두 가지 방법 중 하나로 App Bundle 빌드를 시작하려면 명령줄에서 앱 빌드를 참조하세요.

명령줄에서 앱 배포

Android Gradle 플러그인은 명령줄에서 App Bundle을 빌드하는 가장 쉬운 방법이지만 개발자는 bundletool을 사용하여 App Bundle에서 연결된 기기로 앱을 배포해야 합니다. 그 이유는 bundletool이 App Bundle을 테스트하고 Google Play를 통해 배포를 에뮬레이션할 수 있도록 특별히 설계된 명령어를 제공하기 때문입니다.

다음은 bundletool을 사용하여 테스트할 수 있는 다양한 유형의 시나리오입니다.

  • 앱에서 지원하는 모든 기기 설정을 위한 분할 APK가 포함된 APK 세트를 생성합니다. bundletool이 앱을 연결된 기기에 배포할 수 있으려면 일반적으로 APK 세트를 먼저 빌드해야 합니다.
    • 앱의 모든 분할 APK 세트를 빌드하지 않으려면 연결된 기기 또는 기기 사양 JSON을 기반으로 기기별 APK 세트를 생성하면 됩니다.
  • APK 세트에서 연결된 기기로 앱을 배포합니다. bundletool은 adb를 사용하여 각 기기 설정에 필요한 분할 APK를 결정하고 이러한 APK만 기기에 배포합니다. 여러 기기가 있다면 기기 ID를 bundletool에 전달하여 특정 기기를 타겟팅할 수도 있습니다.
  • 로컬에서 기능 전송 옵션을 테스트합니다. bundletool을 사용하면 실제로 앱을 Play Console에 게시하지 않고도 Google Play에서 기능 모듈을 다운로드하고 설치하는 기기를 에뮬레이션할 수 있습니다. 이는 앱이 주문형 모듈 다운로드 요청 및 실패를 처리하는 방식을 로컬에서 테스트하려는 경우에 유용합니다.
  • 지정된 기기 설정을 위한 앱의 다운로드 크기를 추정합니다. 이는 앱을 다운로드하고 앱이 App Bundle을 위한 압축된 다운로드 크기 제한을 충족하는지 여부를 확인하거나 인스턴트 환경을 사용 설정하는 사용자 환경을 더 잘 이해하는 데 도움이 됩니다.

Play에서 App Bundle 테스트

이 페이지에 설명된 다른 테스트 전략에서는 앱을 Play에 업로드할 필요가 없지만 Play Console을 사용한 테스트는 사용자 환경을 가장 정확하게 표현합니다. 내부 이해관계자, 내부 QA팀, 비공개 알파 테스터 그룹 또는 광범위한 베타 테스터와 앱을 공유하려는 경우 Play Console에서는 몇 가지 테스트 전략을 제공합니다.

다음과 같은 이유로 Play Console을 사용하여 앱을 테스트할 수 있습니다.

  • 앱을 다운로드하고 필요에 따라 임의로 기능을 설치하는 사용자 환경을 가장 정확하게 표현하려고 합니다.
  • 테스터 그룹에 간편한 액세스 권한을 제공하려고 합니다.
  • QA, 알파 및 베타 테스터로 테스트 범위를 지정하려고 합니다.
  • 기기에서 테스트할 수 있는 앱 업로드 기록에 액세스하려고 합니다. 예를 들어 성능 회귀를 위해 버전을 비교하려는 경우입니다.

URL로 빠르게 앱 공유

Play Console 테스트 트랙이 공식 테스트 단계를 통해 앱을 진행하는 방법을 제공하지만 이메일이나 문자 메시지와 같이 덜 공식적인 채널을 통해 신뢰할 수 있는 테스터와 앱을 빠르게 공유하려는 경우도 있습니다.

App Bundle을 Play Console 빠른 공유 페이지에 업로드하면 다른 사용자와 쉽게 공유할 수 있는 URL을 생성할 수 있습니다. 이러한 방식으로 앱을 공유하면 다음과 같은 이점이 있습니다.

  • 팀원에게 Play Console에서의 앱 액세스 권한을 부여하지 않아도 팀의 누구라도 테스트 빌드를 업로드하도록 승인합니다.
  • 테스터는 공유된 특정 테스트 버전의 앱에만 액세스할 수 있습니다.
  • 테스트 빌드는 아무 키로 서명되거나 전혀 서명되지 않아도 되므로 업로더는 프로덕션 또는 업로드 키에 액세스하지 않아도 됩니다.
  • 버전 코드는 고유하지 않아도 되므로 기존 버전 코드를 다시 사용할 수 있으며 업로드하기 위해 코드를 증분할 필요가 없습니다.
  • 주문형 기능 다운로드 및 인앱 업데이트와 같은 맞춤 전송 옵션을 테스트할 수 있습니다.
  • 디버그 가능한 버전의 앱을 공유하여 중요한 데이터 및 로그를 캡처할 수 있습니다.

사용자가 Android 기기에서 URL을 클릭하면 기기에서 자동으로 Google Play 스토어를 열어 앱의 테스트 버전을 다운로드합니다. 테스트를 시작하고 이 테스트 전략의 기능 및 제한사항에 관해 자세히 알아보려면 URL로 앱 공유를 참조하거나 아래 동영상을 시청하세요.

이전 버전의 앱 다운로드

또한 개발자와 테스터는 프로덕션 또는 테스트 트랙에 업로드한 앱의 이전 버전을 다운로드할 수도 있습니다. 예를 들어 이전 버전의 앱을 빠르게 테스트하여 성능 회귀를 확인하려고 할 때 이 방법이 유용할 수 있습니다.

Play Console App Bundle 탐색기 페이지를 방문하여 다운로드하려는 버전의 다운로드 탭으로 이동해 설치 링크를 복사합니다. 또는 테스트하려는 앱 버전의 패키지 이름 및 버전 코드를 알고 있다면 테스트 기기에서 다음 링크를 방문합니다.

https://play.google.com/apps/test/package-name/version-code

테스트 트랙에 앱 업로드

Play Console에서 앱을 업로드하고 출시 버전을 만들 때 프로덕션으로 푸시하기 전에 다음과 같은 여러 테스트 단계를 통해 출시를 진행할 수 있습니다.

  • 내부 테스트: 내부 테스트 버전을 만들어 내부 테스트 및 품질 보증 확인을 위해 앱을 빠르게 배포합니다.
  • 비공개: 비공개 버전을 만들어 더 큰 규모의 테스터를 대상으로 앱의 출시 전 버전을 테스트합니다. 소규모 그룹의 직원이나 신뢰할 수 있는 사용자를 대상으로 테스트한 후 공개 버전으로 테스트를 확장할 수 있습니다. 앱 출시 페이지에서 알파 트랙을 초기 비공개 테스트로 사용할 수 있습니다. 필요하다면 추가 비공개 트랙을 만들고 이름을 지정할 수도 있습니다.
  • 공개: 비공개 버전을 테스트한 이후 공개 버전을 만듭니다. 앱을 프로덕션 버전으로 출시하기 전에 공개 버전을 통해 더욱 넓은 사용자를 대상으로 앱을 테스트할 수 있습니다.

이러한 각 테스트 단계를 통해 앱을 진행하면 앱을 프로덕션 버전으로 출시하기 전에 더 폭넓은 테스터를 대상으로 앱을 공개할 수 있습니다. Play Console 테스트 트랙에 관한 자세한 내용은 공개, 비공개, 내부 테스트 설정을 참조하세요.

사전 출시 보고서를 사용해 문제 확인하기

공개 또는 비공개 트랙에 APK나 App Bundle을 업로드하면 서로 다른 버전의 Android를 실행하는 다양한 기기에서 문제를 확인할 수 있습니다.

Play Console의 사전 출시 보고서를 통해 다음과 같은 잠재적인 문제를 파악할 수 있습니다.

  • 안정성
  • Android 호환성
  • 성능
  • 접근성
  • 보안 취약점

App Bundle을 업로드하면 테스트 기기가 자동으로 실행되어 몇 분 동안 앱을 크롤링합니다. 크롤링 시 앱에서 몇 초마다 입력, 탭, 스와이프 등의 기본 작업을 실행합니다.

테스트가 종료되면 Play Console의 사전 출시 보고서 섹션에서 결과를 확인할 수 있습니다. 자세한 내용은 사전 출시 보고서를 사용해 문제를 확인하는 방법에 관한 Play Console 도움말 항목을 참조하세요.

특정 기기 설정을 위한 APK 탐색 및 다운로드

App Bundle을 업로드하면 Play Console에서 앱이 지원하는 모든 기기 설정을 위한 분할 APK 및 다중 APK를 자동으로 생성합니다. Play Console에서는 App Bundle 탐색기를 사용하여 Google Play에서 생성하는 모든 APK 아티팩트를 확인하고, 지원되는 기기 및 앱의 전송 구성과 같은 데이터를 검사하고, 생성된 APK를 다운로드하여 로컬로 배포 및 테스트할 수 있습니다.

자세한 내용은 App Bundle 세부정보 검토하기에 관한 Play Console 도움말 항목을 참고하세요.

Firebase 앱 배포로 App Bundle 테스트

Firebase 앱 배포를 사용하면 출시 전 버전의 앱을 신뢰할 수 있는 테스터에게 쉽게 배포할 수 있으므로 출시 전에 귀중한 의견을 들을 수 있습니다.

앱 배포를 통해 중앙 허브에서 출시 전 빌드를 모두 관리할 수 있고 Console에서 바로 또는 이미 워크플로의 일부인 명령줄 도구를 사용하여 이러한 빌드를 유연하게 배포할 수 있습니다.

Firebase 앱 배포를 위해 프로젝트를 사용 설정하려면 몇 가지 단계를 실행해야 합니다. Firebase 문서의 시작하기 전에 섹션을 참고하세요. 프로젝트를 설정한 후 앱 배포를 워크플로와 통합하려는 방법을 선택합니다.