다국어 지원 하는 앱인 경우 앱 번들(.aab)로 출시하면 안됩니다. 앱 출시시 APK파일로 출시하세요!!
앱을 완성 후 구글플레이에 출시하기 위해 APK 파일 혹은 App Bundle(확장자가 aab) 파일을 생성 후 출시하게 됩니다. 구글플레이에서는 aab로 생성 출시를 권장하고 있습니다. 그래서 새롭게 만드는 앱들은 aab로 만들어서 출시하고 있었는데 문제가 발생하였습니다. 앱 사용자가 앱 설정에서 언어를 변경할 수 있는 기능을 제공한다면 APK로 출시하시기 바랍니다. 저도 우연히 테스트를 해서 알게된 내용입니다.
aab로 파일을 생성 후 출시하였고, 다른 언어를 선택해서 테스트하기 위해 언어를 변경한 후 앱을 재시작하였으나 언어가 변경되지 않는 문제가 발생했습니다. 휴대폰에 디버깅 및 테스트할 때는 잘 되었는데 왜 갑자기 안되는지 이유를 알 수 없었습니다. 디버깅모드에서는 코드 난독화를 하고 있지 않아, 설마 난독화 문제일까? 라는 생각에 디버깅 모드에서도 난독화를 한 후 테스트하였습니다. 정상적으로 변경되었으며 아무런 문제가 없었습니다. setLocale 관련 메소드에 문제가 있나 싶어 여기저기 또 건드려 보며 삽집을 했고….. 코드 문제는 아니다라는 결론에 도달했습니다. 그래서 테스트 방법을 바꿔 보기로 하였습니다. 출시하기 전에 휴대폰에 넣어서 테스트를 해보자!! 그래서 APK파일을 만든 후 USB를 연결하여 휴대폰에 복사 후 설치하였습니다. 그 결과 정상적으로 언어변경이 가능했습니다. 어라 ..이거봐라… aab에 문제가 있네.. 라는 결론에 도달했습니다. 구글플레이에서 앱을 다운 받을 때 기본언어인 영어와 국가별 구글플레이 사이트 접근에 따른 언어만 다운되어 설치하게 되는 것임을 생각하게 되었습니다. 즉, 영어와 한국어팩만 설치가 된 것으로 생각했습니다. 아무리 다른 언어로 변경해도 변경되지 않았기 때문입니다. 그래서 이번에는 aab가 아닌 APK파일를 생성하고 구글플레이 스토어에 올렸습니다.
최종적으로 확인 버튼를 누르기 전에 오류, 경고 및 메세지로 2개의 알림을 줍니다. 그중에 첫번째 경고 메세지가 눈에 들어옵니다. “이 APK로 인해 미사용 코드 및 리소스가 사용자에게 전송됩니다. Android App Bundle를 사용하면 앱 크기를 줄일 수 있습니다. 기기 설정에 따라 앱을 최적화하지 않으면 다운로드하여 사용자가 기기에 설치되는 앱 용량이 필요 이상으로 커집니다. 크기가 큰 앱은 설치 성공률이 낮으며 사용자가 기기의 저장용량을 많이 차지합니다.”
이게 뭔 개소리야!!
앱 크기만 줄이면 끝나나? 국가별로 번역된 xml 파일이 용량을 차지하면 얼마나 차지한다고 그걸 줄여??
앱은 마켓에 정상적으로 올라갔습니다. 다운로드 후 테스트 결과 다국어지원 기능이 잘 동작합니다. 앱의 설정에서 사용자가 언어를 변경할 수 있는 기능이 있다면 앱 번들 출시는 절대 이용하시면 안됩니다.
그러나 추 후 문제가 있습니다. 몇 년 도 몇 월 부터 시작인지 모르겠지만 신규앱은 무조건 반강제적으로 Android App Bundle를 사용하여 출시해야합니다. 얼마 남지 않았어요. 골치아프게 됬네요. 이 시기가 왔을 때 여전히 지금과 같은 문제가 발생한다면 구글플레이에 문의해야겠지요??