등대의아이는 처음에 웹 게임으로 만들었어요. 홈페이지 주소만 열면 바로 할 수 있게요. 그런데 사람들은 「앱」을 찾아요. 다시 만들지 않고 같은 게임을 Google Play 앱으로 내는 방법이 TWA(Trusted Web Activity)예요.
01TWA가 뭐예요?
TWA는 크롬 브라우저를 주소창 없이 앱처럼 띄우는 방식이에요. 게임은 웹에 그대로 있고, 앱은 그 웹을 여는 「틀」이에요. 그래서 웹에서 게임을 고치면 앱도 따로 업데이트하지 않고 바로 바뀌어요.
02만드는 순서
게임을 PWA로 만들어요. 앱 이름, 아이콘, 시작 주소를 적은 manifest 파일이 필요해요.
PWABuilder에 주소를 넣고 Android 패키지를 받아요. 패키지 이름은 한 번 정하면 못 바꾸니 신중하게(예: com.회사.게임이름).
함께 나온 서명 키는 절대 잃어버리면 안 돼요. 다른 곳에 따로 보관하고, 채팅이나 공유 폴더에 올리지 않아요.
Play Console에 앱을 만들고 AAB 파일을 올려요.
웹사이트에 /.well-known/assetlinks.json 파일을 올려 「이 앱과 이 웹은 같은 주인」임을 증명해요. 이게 맞아야 주소창이 사라져요.
03실제로 겪은 실수
처음 만든 패키지로 콘솔에 앱을 만든 뒤, 이름을 바꾸려고 패키지를 다시 만들었어요. 그런데 콘솔은 처음 키만 받아 줬어요. 결국 처음 패키지를 그대로 쓰고, assetlinks 파일에는 업로드 키와 Play가 다시 서명한 키의 지문을 둘 다 넣어서 해결했어요. 교훈은 하나예요. 「첫 업로드 전에 이름과 키를 확정하자」.
04스토어 그림
스토어에는 아이콘(512px), 그래픽 이미지(1024×500), 스크린샷이 필요해요. 그래픽 이미지는 게임 첫 화면에서 로고와 등대만 살려 만들었어요. AI로 만든 그림은 콘솔에서 「AI로 생성」 표시를 했어요.
아이폰 앱은 원래 맥 컴퓨터와 Xcode가 있어야 만들 수 있어요. 등대의아이는 맥 없이 아이폰 앱을 냈어요. GitHub Actions의 맥 서버를 빌려 쓰는 방법이에요.
01아이폰은 TWA가 없어요
안드로이드처럼 웹을 그대로 감싸는 방식은 애플 심사에서 「웹사이트를 감싼 것뿐」이라는 이유로 거절되기 쉬워요. 그래서 Capacitor라는 도구로 게임 파일을 앱 안에 함께 넣었어요. 인터넷이 없어도 기본 화면이 뜨고, 아이폰에 맞는 설정도 할 수 있어요.
02준비물
Apple Developer 계정(개인, 연 회비)
App Store Connect에 앱 등록, 번들 ID(예: com.회사.게임이름)
App Store Connect API 키. 키 파일은 GitHub 저장소의 Secrets에만 넣고 어디에도 붙여 넣지 않아요.
03빌드 흐름
GitHub Actions에서 「iOS TestFlight」 작업을 눌러 실행해요.
클라우드 맥이 게임 파일을 앱에 넣고 Xcode로 빌드해요.
API 키로 인증서와 프로필을 만들어 서명하고 App Store Connect에 올려요.
TestFlight 내부 테스터에게 자동으로 배포돼요.
10월 12일에 첫 TestFlight 빌드가 올라갔어요. 맥 서버는 사용 시간이 비싸서(일반 서버의 10배) 꼭 필요할 때만 눌러요.
04그동안은 웹으로
아이폰 앱이 나오기 전까지는 사파리에서 웹 버전을 「홈 화면에 추가」해서 앱처럼 쓰는 방법을 안내했어요. 설치 안내 페이지에 세 단계로 적어 두었어요.
아이폰 사용자 안내 (10월 12일)
05애플 심사: 정보 요청
10월 28일에 1.0을 제출했고, 다음 날 「가이드라인 2.1 정보 필요」 답장이 왔어요. 새 계정이라 앱 설명이 더 필요하다는 뜻이었고 버그나 위반은 아니었어요. 실제 아이폰에서 앱을 처음부터 켜는 화면 녹화, 앱의 목적과 사용법, 쓰는 외부 서비스를 정리해 회신했어요.