Bundletool

Published: by

Bundletool 이란?

Bundletool은 Gradle, Android Studio 및 Google Play에서 Android App Bundle을 만들거나 앱 번들을 기기에 배포되는 다양한 APK로 변환하는 데 사용되는 기본 도구입니다. Bundletool은 명령 줄 도구로도 사용할 수 있으므로 앱의 APK에 대한 Google Play의 서버 측 빌드를 다시 만들고 검사하고 확인할 수 있습니다.

Bundletool 다운로드

깃허브 저장소 : Bundletool

app.aab로부터 apk 세트 생성

bundletool build-apks --bundle = <.aab에 대한 경로> --output = <out.apks>

두 개의 인수가 필요하다. app.aab 파일의 경로와 apk세트 파일이 필요하다.

app.abb부터 apk 세트를 생성하는 다른 방법

bundletool은 bundletool-all-x.x.x.jar의 별명이다. 이 별명을 사용하려면 OS에 별칭을 등록해야 한다. 등록하지 않고 사용하려면 아래와 같이 명령한다.

java -jar <bundletool.jar 경로> build-apks --bundle = <.aab에 대한 경로> --output = <out.apks>

out.apks 파일로부터 apk 추출

apk 세트파일(out.apks)을 압축해제하여 다양한 apk 파일들을 얻는다.

unzip out.apks -d apks

압축해제하면, apks 하위에 splits 디렉토리가 생기는데 그 안에 모든 apk 파일들이 존재한다.

ls -lh apks/splits | awk '{print $9, $5}'
base-ko.apk 15K
base-en.apk 14K
base-ar.apk 16K
base-as.apk 11K
...
..
.
base-xhdpi.apk 106K
base-xxhdpi.apk 130K
base-xxxhdpi.apk 137K

apk 파일들 중 base-master.apk가 있다. 이 파일이 동료들에게 배포할 파일이다. 즉, 기존처럼 빌드하여 나온 app.apk파일과 동일한 파일이라는 것이다.

터미널에서 bundletool로 사용하기

먼저, bundletool.jar를 OS에 alias로 등록해야 한다.

.bash_aliases 파일 생성하

touch .bash_aliases

.bash_aliases 내용 작성

alias bundletool=’java -jar /Users/jaeho/bundletool-all-0.9.0.jar’

명령어 반영(로드)

source .bash_aliases

이제 터미널에서, java -jar bundletool.jar build-apks…. 명령어 대신 bundletool build-apks ….을 사용할 수 있다!