generated from ttipo/project-base
feat: 휴대폰 앱을 스토어 없이 사내에 나눠 주는 받기 화면 · API · 운영 도구 · 앱 서명 #22
Reference in New Issue
Block a user
Delete Branch "feat/app-distribution"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
무엇을 · 왜
안드로이드 앱을 스토어(Play 내부 테스트)에 올리지 않고, 직접 빌드해 우리 키로 서명한 APK 를 사내에만 나눠 주기로 했습니다(2026-11-08).
받는 곳은 포털에 로그인한 직원만 여는 화면이고, 앱의 업데이트 화면과 설정의 [새 버전 받기]가 그 화면을 휴대폰 브라우저로 엽니다.
화면은 캔버스 보드로 먼저 확정했습니다(v68 —
SettingsMobileApp새 보드,App1Push⑩ · ④,App1Shell앱 정보 줄).GET /api/app-releases/android/latest(판 정보) ·…/latest/file(APK — 대용량 첨부 받기와 같은 머리글 · Range)shared/utils/download-headers.ts한 곳으로 모았습니다. 대용량 첨부 받기도 이것을 쓰고, 값과 차례는 그대로입니다./app(휴대폰 받기 화면 — 로그인 필요)<API_URL 의 출처>/app을 바깥 브라우저로 엽니다(업데이트 화면 · 설정 › 앱 정보). Play 런처는 지웠습니다.key.properties) ·google-services.json· 운영 포털의 https API 주소가 모두 갖춰질 때만 됩니다. 하나라도 빠지면 Gradle 이 까닭을 알리고 멈춥니다(알리는 글에 주소 값은 싣지 않습니다).X-Accel-Buffering넘김). CI 받기 경로 시험에 변형을 더했습니다.리뷰는 두 번 받았습니다. 1차에서 중간 1 · 낮음 3 · 참고 1, 2차에서 낮음 3 · 참고 1 이 나왔고 모두 고쳤습니다.
확인 방법
AUTH_010flutter build apk --release를 부르면 두 까닭(서명 키 · API 주소)을 알리고 멈춥니다(주소 값 없음).nginx -t· 가짜 백엔드 받기 시험을 로컬에서 돌리지 못했습니다. 이 PR 의 CI infra 잡이 같은 시험을 돕니다(러너도 같은 PC 라 Docker 가 돌아온 뒤).영향 범위
체크리스트
BusinessException/error.code분기)npm run sync:error-codes실행 후 생성 파일까지 커밋 — 바꾸지 않음*.example값은 placeholder) — key.properties · keystore 는 git 이 무시🤖 Generated with Claude Code