HEUNG AI Studio

기록기술 기록

웹 게임을 플레이 스토어 앱으로

매일 구구단은 웹 페이지 하나로 된 게임입니다. 이걸 따로 다시 만들지 않고 그대로 플레이 스토어 앱으로 내보내려고 했습니다. 앱 파일은 만들었지만, 출시는 아직 하지 못했습니다. 그 사이에 알게 된 조건들을 순서대로 적었습니다.

글 HEUNG AI Studio작성 2026-10-23직접 해 본 기록

결론부터

단계상태막힌 곳
웹 게임을 설치형 웹앱(PWA)으로끝남없음
안드로이드 앱 파일(AAB) 만들기끝남포장 사이트가 멈춰 다른 경로로
앱과 사이트 연결(assetlinks.json)절반구글 서명 지문은 업로드 뒤에 생김
비공개 테스트 → 정식 출시보류테스터 12명이 14일 연속 참여해야 함
  • 웹 게임을 고치면 앱도 같이 바뀌는 구조라, 앞으로 관리할 코드는 하나입니다.
  • 출시를 막는 건 기술이 아니라 사람 12명입니다. 그리고 저는 직접 시험해 볼 안드로이드 휴대폰이 없습니다.

1. 웹 페이지를 앱처럼: PWA 준비

TWA(Trusted Web Activity)는 안드로이드 앱 안에서 크롬이 내 웹 페이지를 주소창 없이 꽉 차게 보여 주는 방식입니다. 그러려면 먼저 웹 페이지가 "설치할 수 있는 웹앱(PWA)" 조건을 갖춰야 합니다.

  • 앱 정보 파일 — manifest.webmanifest에 이름(매일 구구단), 시작 주소(/gugudan/), 화면 방식(standalone)과 아이콘을 적었습니다.
  • 아이콘 — 192px, 512px, 그리고 안드로이드가 모양을 잘라 쓰는 마스커블 512px까지 세 개입니다.
  • 서비스 워커 — sw.js가 게임 파일을 기기에 저장해, 인터넷이 끊겨도 게임이 열립니다.

2. 앱 파일과 서명 키

보통은 마이크로소프트가 운영하는 무료 도구 PWABuilder 사이트에서 주소를 넣고 안드로이드 패키지를 받습니다. 작업하던 날 그 사이트가 분석 단계에서 멈춰 넘어가지 않았고, 다른 사이트 주소를 넣어도 같았습니다. 그래서 같은 회사가 운영하는 안드로이드 포장 서비스에 직접 요청해 앱 파일을 만들었습니다.

  1. 패키지 이름 — com.heungai.gugudan. 한 번 올리면 바꿀 수 없으므로 사이트 주소를 뒤집어 정했습니다.
  2. 앱 파일 — 스토어에 올리는 형식은 APK가 아니라 AAB입니다. 첫 버전은 gugudan-1.0.0.aab로 만들었습니다.
  3. 서명 키 — 앱 파일에 서명한 키 파일(.jks)과 비밀번호는 앞으로 업데이트할 때마다 필요합니다. 잃어버리면 같은 앱으로 업데이트를 올릴 수 없어서, 컴퓨터와 다른 곳에 한 부 더 보관했습니다.
사람이 한 일과 AI가 한 일앱 파일 생성과 서명, 스토어용 그림(아이콘 512px, 대표 그림 1024×500, 휴대폰 화면 4장)과 등록 문구 초안은 AI(클로드)가 만들었습니다. 개발자 계정 본인 확인, 결제, 테스터 모으기는 사람이 직접 해야 하는 일입니다.

3. 주소창을 없애는 파일: assetlinks.json

앱이 "이 사이트는 내 것"이라고 증명하지 못하면 TWA는 주소창이 보이는 일반 크롬 탭으로 열립니다. 증명은 사이트의 /.well-known/assetlinks.json 파일에 앱의 패키지 이름과 서명 인증서 지문(SHA-256)을 적어 두는 방식입니다.

여기서 헷갈린 점이 하나 있었습니다. 플레이 스토어는 "Play 앱 서명"을 쓰기 때문에 지문이 두 개가 됩니다.

키누가 갖고 있나언제 맞아야 하나
업로드 키나컴퓨터에서 직접 설치한 앱
앱 서명 키구글플레이 스토어에서 받은 앱

지금 사이트의 파일에는 업로드 키 지문 하나만 들어 있습니다. 구글의 앱 서명 키 지문은 Play Console에 앱 파일을 올린 뒤 「앱 무결성」 화면에서 볼 수 있으므로, 업로드 후 두 번째 지문을 추가해야 스토어에서 받은 앱에서도 주소창이 사라집니다. 공식 문서는 두 지문을 다 넣어 두라고 권합니다.

4. 테스터 12명, 14일

2023년 11월 13일 이후에 만든 개인 개발자 계정은 바로 정식 출시를 할 수 없습니다. 비공개 테스트에 12명 이상을 초대하고, 그 사람들이 14일 동안 계속 참여한 뒤에야 대시보드에서 프로덕션 출시를 신청할 수 있습니다. 중간에 나갔다 다시 들어온 사람은 다시 14일을 채워야 합니다. 신청 뒤 구글 검토는 보통 7일 안쪽이라고 안내돼 있습니다.

1인 개발자에게는 이게 가장 큰 벽이었습니다. 테스트 참여에는 구글 계정(지메일 주소)이 필요해서, 가족과 지인의 주소를 모으는 것부터 해야 합니다.

5. 연령 신고는 사실대로

구조를 정할 때 다른 AI(제미나이)에게 교차 검토를 받았는데, "대상 연령을 13세 이상으로 신고하면 가족 정책 심사를 피할 수 있다"는 답이 나왔습니다. 따르지 않았습니다. 구구단은 누가 봐도 아이들이 쓰는 앱이라, 연령을 사실과 다르게 신고하는 쪽이 오히려 정지 사유가 될 수 있다고 봤습니다.

대신 가족 정책에 걸릴 거리를 처음부터 뺐습니다. 광고와 추적 도구가 없고, 이름·로그인이 없고, 다른 사람과 대화하는 기능이 없습니다. 서버에 남는 것은 순위 계산용 숫자 몇 개뿐입니다(순위 백엔드 글 참고).

정리

  • 웹 게임을 앱으로 내는 가장 짧은 길은 PWA → TWA 포장이었고, 코드 하나로 웹과 앱을 같이 관리할 수 있습니다.
  • 서명 키는 따로 보관하고, assetlinks.json에는 지문 두 개가 들어가야 한다는 것을 미리 알아 두면 덜 헤맵니다.
  • 새 개인 계정이라면 테스터 12명·14일을 일정에 먼저 넣어야 합니다. 저는 이 단계에서 출시를 잠시 멈췄습니다.

자주 묻는 질문

TWA로 만들면 앱을 고칠 때마다 스토어에 다시 올려야 하나요?

게임 화면과 동작은 웹 페이지라서 사이트만 고치면 앱에도 바로 반영됩니다. 앱 이름·아이콘·권한처럼 앱 파일 자체를 바꿀 때만 새 버전을 올립니다.

assetlinks.json이 틀리면 어떻게 되나요?

앱은 열리지만 주소창이 보이는 크롬 탭 형태로 열립니다. 대부분 지문이 설치된 앱의 서명 키와 맞지 않아서 생깁니다.

테스터 조건은 모든 계정에 해당하나요?

2023년 11월 13일 이후에 만든 개인 계정이 대상입니다. 조직 계정은 이 조건이 아닙니다.

안드로이드 휴대폰 없이 출시할 수 있나요?

앱 파일을 만드는 것까지는 됩니다. 다만 실제 기기에서 주소창이 사라졌는지, 화면이 잘리는지 확인하려면 기기나 테스터의 도움이 필요합니다.

참고한 자료