Android

[Android Build] bundletool 사용하여 bundle을 apk로 변환하기

향채소 2022. 11. 9. 16:34

https://flutter-ko.dev/docs/deployment/android#signing-the-app

 

Android 앱 출시 준비하기

Flutter 앱을 개발하는 동안, 커멘드 라인에서의 `flutter run`을 실행하거나IDE에 있는 툴바 **Run** 과 **Debug**를 선택하여 앱을 테스트할 수 있습니다. Flutter는 기본적으로 앱의 _debug_ 버전을 빌드합니

flutter-ko.dev

 

Flutter 앱 빌드 테스트를 하기 위해서는 아래 2가지 방법이 있습니다.

 

1) 번들 도구를 이용한 오프라인 테스트

2) 구글 플레이를 이용한 온라인 테스트

 

작성자는 1번 방법을 이용하여 테스트를 해봤습니다.

 

1) bundletool 다운로드 하기

- 깃허브에 들어가서 최신 버전 다운 받기 (https://github.com/google/bundletool or bundletool-all-1.13.0.jar)

- brew install bundletool

 

2) (깃허브에서 다운 받았다면) alias 등록하기

 맨 처음 다운 받았다면 bundletool-all-1.13.0.jar 라는 이름의 파일인데, 해당 파일 이름을 bundletool.jar로 바꿨습니다. (선택 사항)

 

2-1) 각자 환경에 맞게 ~/.bashrc 또는 ~/.zshrc 에 아래 명령어 추가 (맨 밑에 복붙해도 됨)

- alias bundletool = 'java -jar {bundletool 경로}/bundletool.jar'

 

명령어 추가 이후에는 source ~/.bashrc 또는 source ~/.zshrc 를 사용하여 소스를 사용할 수 있게 해줍니다.

 

3) apk 파일 생성

 aab 파일이 있는 곳에 가서 아래 명령어 사용 (bundle에는 aab 파일, output에는 생성될 apk 파일 이름) 

- bundletool build-apks --bundle=app-debug.aab --output=myapp.apks

 

4 ) 현재 연결된 기기에 apk 실행

bundletool install-apks --apks=myapp.apks

 

4-1) Error: More than one device connected, please provide --device-id 에러 발생 시

- adb devices 명령어를 이용하여 디바이스를 지정해준다.

> adb devices
List of devices attached
emulator	device

 

- bundletool install-apks --apks=myapp.apks --device-id emulator

 

5) 결과

 디바이스에 앱이 설치된 것을 확인 할 수 있습니다.

 

감사합니다.