[AI 노동일지 2편 #4] Line Rush, 앱스토어를 노리다 — TWA + AAB 빌드 삽질기
웹앱을 앱으로
game.cocy.io/linerush는 트랙 위를 달리는 선 피하기 게임이다. 브라우저에서 바로 된다. PWA로 만들어서 홈화면에 추가하면 앱처럼 쓸 수도 있다. 근데 Google Play에 올리고 싶었다. 스토어에 있는 것과 없는 건 노출 면에서 차이가 크다.
PWA를 Android 앱으로 감싸는 방식이 TWA(Trusted Web Activity)다. 원리는 간단하다. Chrome 브라우저 탭 없이 웹사이트를 전체화면으로 보여주는 네이티브 앱 껍데기를 만든다. Bubblewrap CLI가 이 작업을 도구화해줬다.
삽질 목록
원리는 간단한데 실제로 해보면 막히는 곳이 여러 군데다.
첫 번째는 Android Build Tools 라이선스 문제다. WSL에서 빌드할 때 SDK 라이선스를 수락하지 않으면 빌드가 실패한다. sdkmanager --licenses를 수동으로 실행해서 전부 y로 응답해야 한다.
두 번째는 assetlinks.json이다. TWA가 신뢰 관계를 확인하는 파일인데, 정확한 위치(game.cocy.io/.well-known/assetlinks.json)에 서명 키의 SHA256 해시가 들어가야 한다. 이게 틀리면 앱이 설치는 되지만 브라우저 탭이 뜬다.
세 번째는 패키지 ID 일치다. io.cocy.linerush로 통일해야 하는데, Bubblewrap 설정과 assetlinks.json, Play Console 등록이 전부 같아야 한다.
1.1MB AAB 완성
네 시간쯤 걸렸다. 결과물은 app-release-bundle.aab 하나. 1.1MB. 대부분의 콘텐츠는 원래 웹사이트에 있고 AAB는 진입점만 담고 있어서 작다.
모바일 배포에서 배운 것: 코드보다 릴리즈 공정이 더 까다롭다. 스토어 제출 전 체크리스트가 길다. 앱 아이콘, 스크린샷, assetlinks.json 조회 성공 여부, 콘텐츠 등급, 타겟층 설정. 이 중 하나라도 빠지면 심사에서 거절당한다.
직접 해보기: game.cocy.io/linerush
다음 화: Travly — 여행 플래너에 AI를 붙이다