Flutter 앱번들 - bundletool 사용하여 기기테스트
이 문서를 보고 따라했다. 막히는 부분을 해결한 기록이다.
App bundle 다운로드
솔직히 여기부터 막혔다. jar 파일은 있는데 어떻게 실행하라는 것인지. 정답은 서칭 뿐.
자바를 실행하고 아래 명령어를 실행한다.
> java -jar ./bundletool-all-1.14.0.jar version
현재는 1.14.0 버전인데 버전이 다를 경우 파일명을 다르게 해준다. 실행파일의 주소 역시 맞춰줘야 한다.
실행이 확인되면 alias로 bundletool을 사용하기 쉽게 설정한다.
> alias bundletool='java -jar ./bundletool-all-1.14.0.jar'
잘 실행됐다면
> bundletool version
명령어를 통해 alias 지정 여부를 잘 확인한다. 나는 ./ 상대경로로 하니 다른 경로에서 안 먹히는 경우가 생겼다. 절대경로로 다시 지정해줬다.
추가
alias를 이후에도 계속 사용하고 싶다면 아래 코드를 통해 alias를 시스템에 저장하자
1 2 3 4 5 6 | echo "alias bundletool='java -jar /d/FlutterProject/bundletool-all-1.14.0.jar'" >> ~/.bash_profile //alias를 시스템 파일에 저장한다. cat ~/.bash_profile //alias 저장 확인 source ~/.bash_profile // 해당 내용 적용 bundletool version //잘 적용됐는지 확인 | cs |
App bundle로 APK set 생성
링크의 설명대로 App bundle에서 APK를 만들어준다.
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
위와 같이 간단한 명령어만 써주면 된다.
/Myapp/ 경로를 일일히 써주기가 귀찮다면 해당 경로로 가서 파일명만 넣고 실행해주면 된다.
디버그 키 서명이 싫을 경우 아래 코드를 쓰라고 하는데
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks --ks=/MyApp/keystore.jks --ks-pass=file:/MyApp/keystore.pwd --ks-key-alias=MyKeyAlias --key-pass=file:/MyApp/key.pwd
나는 열심히 썼지만, 생각해보니 Google Play store 배포는 aab 파일로 할거라면 굳이 서명 안해도 될 것 같다. 쓰다가 뭔가 기능 이상이 있거나 하면 시도해보자.
링크를 잘 보면 연결된 기기에 따라 apk를 뽑아주는 명령어들이 있다. 상황에 맞게 사용하자.
연결된 디바이스에 APK 배포
bundletool install-apks --apks=/MyApp/my_app.apks
잘 다운된 것을 확인할 수 있다. |
댓글
댓글 쓰기