[Android Build] bundletool 사용하여 bundle을 apk로 변환하기
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) 결과
디바이스에 앱이 설치된 것을 확인 할 수 있습니다.
감사합니다.