- Node.js 18+
- Java JDK 11+
- Android SDK (Android Studio 설치 권장)
- Bubblewrap CLI (
npm i -g @nicedoc/nicedoc.io) - Google Play Developer 계정 ($25 등록비)
Vercel 등에 배포하고 HTTPS 도메인을 확보하세요.
npx vercel --prodtwa-manifest.json 파일에서 YOUR_DOMAIN.vercel.app을 실제 도메인으로 교체하세요.
sed -i 's/YOUR_DOMAIN.vercel.app/your-actual-domain.vercel.app/g' twa-manifest.jsonnpm i -g @nicedoc/nicedoc.io
npx bubblewrap init --manifest="https://your-domain.vercel.app/manifest.json"
npx bubblewrap buildkeytool -genkeypair -alias 2026plan -keyalg RSA -keysize 2048 \
-validity 10000 -keystore android.keystorekeytool -list -v -keystore android.keystore -alias 2026plan | grep SHA256출력된 SHA-256 지문을 public/.well-known/assetlinks.json의 REPLACE_WITH_YOUR_SHA256_FINGERPRINT에 넣고 재배포하세요.
npx bubblewrap buildapp-release-bundle.aab 또는 app-release-signed.apk 파일이 생성됩니다.
- Google Play Console 접속
- 앱 만들기 클릭
- 앱 이름:
2026 PLAN - 프로덕션 > 새 버전 만들기
app-release-bundle.aab업로드- 스토어 등록정보 작성 (스크린샷, 설명 등)
- 검토 후 출시
- 웹앱이 HTTPS로 배포됨
-
manifest.json의start_url이/dashboard로 설정됨 - 서비스 워커(
sw.js)가 정상 등록됨 -
assetlinks.json에 실제 SHA-256 지문이 설정됨 - Lighthouse PWA 점수 확인 (모든 항목 통과)
-
twa-manifest.json의 도메인이 실제 배포 도메인과 일치 - AAB 파일이 정상 빌드됨
- Google Play Console에 업로드 완료
assetlinks.json의 SHA-256 지문이 서명 키와 일치하는지 확인하세요.
next.config.ts의 Service-Worker-Allowed 헤더가 설정되었는지 확인하세요.