Frontend/React Native

[React Native] mac에서 bundletool 사용법

차술 2024. 8. 28. 15:46

bundle tool 사용법

할 때마다 까먹고 찾는거 번거로워서 한번에 써둔다.


Android aab 파일 생성하기

npx react-native build-android --mode=release 

우선 터미널에서 해당 명령어를 실행하여 빌드 + aab 파일을 생성해준다.
위에 파일은 android/app/build/outputs/bundle/release/app-release.aab에 위치하고 있다.

(* 공식 react navtive Docs 기준)

 

bundletool 사용

bundletool을 다운받는다.
Github 저장소 해당 링크에서 다운받을 수 있다. (구글 공식)

터미널을 실행한 후 다운로드 받은 폴더로 이동한다.

이후 아래와 같이 작성한다.

java -jar "./bundletool-all-1.16.0.jar" version

제대로 작동한다면 해당 버젼이 뜬다.

현재 글을 작성하는 시간 기준으로 가장 최신 버젼은 1.17.1이였으나 내가 다운받아 사용할 땐 1.16.0이 최신이였기 떄문에
예제 또한 1.16.0이다.

사용하는데 있어서는 전혀 지장은 없다. 그래도 왠만하면 최신쓰자.

이후 매번 작성하기 번거로우니 아래와 같이 터미널에 추가로 작성읋 해준다.

alias bundletool='java -jar ./bundletool-all-1.16.0.jar'

이제 bundletool이라고만 써도 사용가능해졌다.

bundletool version

위에 명령어로 버젼이 제대로 나오는지 확인해보자.
위에 명령어처럼 버젼이 잘 나온다면 잘된거다.

다만 터미널을 종료한다면 이 귀찮은 짓을 또 해야하니 아싸리 고정을 시켜버리자.

~/.zshrc에 환경변수로 바꾸면 된다.

vi ~/.zshrc

터미널에 위와 같이 작성하여 들어간 후 맨 밑에 줄에 i를 눌러 수정모드로 변환한 후에 아래 내용을 작성한다.

alias bundletool='java -jar ~/해당경로/bundletool-all-1.16.0.jar'

다 작성을 하였다면 esc를 누른 후 :wq 로 빠져나오자.
왜 이렇게 하냐고 묻는다면 그냥 vi 사용법을 검색해서 보면 된다.
저장하기싫고 무서워서 그냥 일단 빠져나오고 싶으면 :q 로 빤스런하면 된다.

 

aab -> apks 변환

이제 본격적으로 aab를 apks로 변환해보자.

bundletool build-apks --bundle=./app-release.aab --output=./universal.apks --ks=./my-upload-key.keystore --ks-key-alias=my-key-alias --ks-pass=pass:비번작성 --key-pass=pass:비번작성 --mode=universal

일단 위와 같이 작성을 해줘야 apks 파일이 생성이 된다.

그리고 keystore도 만들어야되는데.... 이건 예전에 만들어둔게 있어서 계속 사용하다보니 만드는법을 까먹었다.
일단 귀찮으니 넘어가고 다음에 다시 작성을 해야겠다. 하지만 절대 안하겠지

설명이다.

--bundle=./app-release.aab
- 변환하고 싶은 aab파일을 위치와 파일 이름으로 지정해준다.

--output=./universal.apks
- 변환하는 위치와 이름을 지정한다.

--ks=./my-upload-key.keystore
- keystore 만들고 나서 사용할 ks의 위치를 지정해준다.

--ks-key-alias=my-key-alias
- ks의 별명이라는데 이거 작성안하면 위에 ks랑 세트라고 안되면서 에러난다. 걍 대충 아무 이름 갈겨주자.

--ks-pass=pass:비번작성
- 역시나 ks 만들떄 작성하는 비번 써주면 된다.

--key-pass=pass:비번작성
- 위에랑 뭔차이인지 까먹었다. 난 그래서 두개 비번 같은거로 통일했다.

--mode=universal
- 변환한 피일의 타입인데 universal로 지정해줘야 파일이 하나만 생성된다. 아마 지정을 안해주면 apk파일이 엄청 많이 생성이 되어서 이게뭔가 싶을거다. 나도 알고 싶지않았다.


뭐 이러면 대충 apks 파일까지 변환을 하였다.

하지만 여기서 끝이 아니다.

apks는 압축된 폴더 개념이라 풀어줘야한다.
여기서는 다양한 명령어들이 존재하는 거 같은 데 난 그냥 제일 간단한걸로 한다. 다른방법은 몰?루?

unzip ./universal.apks

위와 같이 변환한 파일의 위치와 unzip 명령어를 입력해주면 압축이 풀리면서 드디어 바라던 apk 파일을 획득할 수 있다.

 

andrioid 기기에 install 하기

제일 간단한거는 걍 adb를 이용하는 것이다.

adb install ./universal.apk

이렇게 명령어를 작성하면 바로
Performing Streamed Install 라는 글씨가 뜨면서 대기하게 된다.
대충 1분내지 길게는 3분가량 기다리다보면 Success 라는 글씨가 뜨면서 해당 기기에 install이 완료된다.

당연한 소리지만 usb 연결을 한 상태여야하고 기기가 인식이 되어있어야 한다.

adb devices

해당 명령어를 통해 연결이 제대로 됐는지 부터 확인하자.

adb자체가 안깔려있다면?? 얼른 adb 까는법 검색하고 와라.

끄읏