APK가 아닌 AAB?
AAB (Android App Bundle)은 앱의 모든 컴파일된 코드 및 리소스를 포함하며 APK 생성 및 서명을 Google Play에 맡기는 게시 형식입니다.
2021년 8월부터 구글은 새로 업로드되는 모든 앱에 대해 AAB 형식만 가능하도록 정책을 변경하였습니다.
준비
저는 현재 expo와 EAS를 사용 중이며 다른 환경은 정보가 맞지 않을 수 있습니다.
저의 개인 기록을 공유하는 것이므로 여러분의 환경을 고려하여 확인이 필요합니다.
지금까지의 환경은 이전 포스팅을 참고하시기 바랍니다.
2023.05.08 - [개발, 코딩/웹사이트, 앱 개발] - Expo와 React-native-webview를 사용한 웹뷰앱 만들기
테스트를 위한 기존 APK 빌드 환경에서 eas.json을 변경해주어야합니다.
기존에는 아래와 같이 되어있었습니다.
{
"build": {
"preview": {
"android": {
"buildType": "apk"
}
},
"preview2": {
"android": {
"gradleCommand": ":app:assembleRelease"
}
},
"preview3": {
"developmentClient": true
},
"production": {}
}
}
그러나 이제는 AAB로 빌드를 해야하므로 아래와 같이 변경해줍니다.
{
"build": {
"production": {
"distribution": "store",
"android": {
"buildType": "app-bundle"
}
}
}
}
빌드
AAB 빌드를 위해 터미널 창에서 다음과 같이 입력해줍니다.
eas build --platform android --profile production
완료
빌드가 완료되면 다음과 같이 aab 파일을 다운로드 받을 수 있는 링크가 표시됩니다.
출시
구글 플레이 콘솔(https://play.google.com/console)에 개발자 계정을 생성한 뒤 필요한 정보를 입력하고 빌드된 AAB 파일을 업로드하면 출시가 가능합니다.
실제로 AAB 파일 이외에 부수적으로 조사하고 요구되는 내용이 상당하므로 출시를 위해서는 추가적인 검색이 필요할 것입니다.
업로드 후 2~3일 뒤 구글 스토어에 출시가 이루어졌습니다.
https://play.google.com/store/apps/details?id=com.ourhertz.freegpt
업데이트
출시된 앱을 다운로드 받아서 설치해봤더니, 오래 전 테스트용으로 만들어놨던 허접한 아이콘으로 등록이 되어있습니다.
assets 폴더에서 아이콘 파일을 교체 후 app.json 파일에 눈에 띄게 보이는 "version": "1.0.0" 을 아무래도 올려야할 것 같아서 "1.0.1"로 변경 후 다시 aab 빌드를 하여 새버전 등록을 시도하였습니다.
그런데 "1 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요." 라는 오류가 발생되었습니다.
알아보니 기존 app.json 파일에 "versionCode" 라는 항목이 없어서 자동으로 1이 부여된 것인데, 이번에도 해당 항목을 명시하지 않으니 자동으로 다시 1이 부여된 것입니다.
아래는 기존 코드 중 일부입니다.
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#000000"
},
"package": "com.ourhertz.freegpt"
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
"android" 항목에 "vesionCode" 항목을 추가한 뒤 2라는 값으로 올려서 다시 빌드하였습니다.
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#000000"
},
"package": "com.ourhertz.freegpt",
"versionCode": 2
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
다음과 같이 업데이트 버전이 검토 중 상태로 정상 등록되었습니다.
마치며
수많은 ChatGPT 활용 앱들을 보면 어마어마한 디자인과 실제 자체 앱으로 모든 것을 개발한 것을 볼 수 있는데 저의 경우 정말 개발이라고 할 수 없을 정도로 단순한 웹뷰 앱이라 다소 민망하긴 합니다 (직접 입력한 코드 한줄 없이 ChatGPT에게 물어물어 작성하고 수정한 것이 전부)
그래도 늘 생각만 해왔던 구글 앱스토어에 첫 작품을 등록시킨 것만으로 정말 뿌듯한 일이 아닐 수 없습니다.
스스로 찾아보기 위한 개인 기록 수준의 포스팅이지만 비슷한 환경에서 저와 같은 작업을 하시는 분들께 조금이나마 도움이 되길 바랍니다.
'개발, 코딩 > 웹사이트, 앱 개발' 카테고리의 다른 글
React-native 웹뷰앱 (전생 얼굴 검출기) 개발 기록 (개인 참고용) (1) | 2023.08.19 |
---|---|
앱스토어 출시 후 정책 위반으로 앱 삭제 및 광고비 증발 (5) | 2023.08.16 |
비로그인 무료 ChatGPT 서비스 - FreeGPT (맞춤형 사전 프롬프팅) (0) | 2023.05.14 |
Expo와 React-native-webview를 사용한 웹뷰앱 만들기 (0) | 2023.05.08 |
화면 크기로 모바일, 데스크탑 버전 구분을 위한 @media 쿼리가 인식되지 않을 때 (0) | 2023.05.07 |