Android(TWA) 앱 패키징 + 재실행 불가 버그 수정
Cloudflare Pages 가 /index.html 을 / 로 308 리다이렉트하는데, 서비스워커가 그 리다이렉트 응답을 캐시해 두면 navigation 요청에 응답할 수 없어(스펙상 금지) 두 번째 실행부터 ERR_FAILED 로 앱이 아예 열리지 않았다. - sw.js: navigation 은 네트워크 우선 + 캐시된 './' 오프라인 폴백, 프리캐시는 리다이렉트 플래그 없는 새 Response 로 복사해 저장 (tetrig-v2) - manifest.webmanifest: start_url 을 './' 로 바꿔 리다이렉트 자체를 회피 - android/: Bubblewrap TWA 프로젝트 (kr.tkrmagid.tetrig, launchUrl '/') - .well-known/assetlinks.json: 서명 키 SHA-256 등록 → 주소창 없는 전체화면 실행
This commit is contained in:
25
README.md
25
README.md
@@ -95,6 +95,31 @@ wrangler deploy # 배포
|
||||
- Google OAuth 클라이언트 ID (Phase 4)
|
||||
- 애드센스 계정 ID (Phase 7)
|
||||
|
||||
## 배포
|
||||
|
||||
웹(Cloudflare Pages) — `dist/` 에 `index.html`, `manifest.webmanifest`, `sw.js`,
|
||||
아이콘 3종, `.well-known/assetlinks.json` 을 담아 올린다.
|
||||
|
||||
```bash
|
||||
node build.js
|
||||
wrangler pages deploy dist --project-name tetrig --branch main
|
||||
```
|
||||
|
||||
안드로이드(Play Store) — `android/` 는 위 사이트를 감싸는 TWA(Trusted Web Activity)
|
||||
프로젝트다. 패키지는 `kr.tkrmagid.tetrig`. Bubblewrap 으로 빌드한다.
|
||||
|
||||
```bash
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 # Bubblewrap 은 JDK 17 고정
|
||||
export BUBBLEWRAP_KEYSTORE_PASSWORD=... BUBBLEWRAP_KEY_PASSWORD=...
|
||||
cd android && bubblewrap build --skipPwaValidation
|
||||
# → app-release-signed.apk (테스트 설치용), app-release-bundle.aab (Play 업로드용)
|
||||
```
|
||||
|
||||
서명 키는 저장소에 넣지 않는다. 키를 바꾸면 `.well-known/assetlinks.json` 의
|
||||
SHA-256 지문도 같이 갱신해야 TWA 가 주소창 없이 전체화면으로 뜬다.
|
||||
Play App Signing 을 쓰면 Play Console 이 발급한 앱 서명 키 지문도
|
||||
assetlinks 에 함께 넣어야 한다.
|
||||
|
||||
## 구현 가드레일 (반드시 지킬 것)
|
||||
|
||||
- **IP 금지**: 사용자 노출 텍스트에 "Tetris/테트리스" 금지, 테트리스 음악(Korobeiniki 등) 금지, 표준 가이드라인 색상 1:1 복제 금지, TETR.IO 에셋·명칭 복제 금지.
|
||||
|
||||
Reference in New Issue
Block a user