[Feature] Android 강제 업데이트 정책 적용#22
Conversation
Android installs do not receive Play updates immediately or universally, so the app needs an entry-time policy gate that can be changed after release. Add a Remote Config backed version policy, wire Play Core immediate updates for forced releases, and fall back to a non-cancelable Play Store prompt when Play Core cannot start the flow.\n\nConstraint: Skip Android UI starts from MainActivity, so update gating must live in the Android entrypoint rather than only Swift routing.\nConstraint: No backend policy endpoint exists yet, so Firebase Remote Config defaults fail open unless min/latest values are configured.\nRejected: Store-link-only dialog | loses native Play in-app update UX when available.\nRejected: Swift-only startup modal | cannot reliably block before Android activity lifecycle update resume handling.\nConfidence: medium\nScope-risk: moderate\nDirective: Do not raise android_min_supported_version_code until the target version is available to all intended Play users.\nTested: skip android build --plain\nNot-tested: Real Play Core update availability on an Internal Testing track.
A team auto-checkpoint replaced the Remote Config policy client with a different manifest/HTTP contract after the coordinator was already wired to fetchPolicy/currentVersionCode. Restore the policy client shape that the Android update coordinator builds against so the feature remains internally consistent.\n\nConstraint: AppUpdateCoordinator depends on AppVersionPolicy, AppUpdateRequirement, fetchPolicy, and currentVersionCode.\nRejected: Rewrite the coordinator around manifest metadata in this pass | it would diverge from the planned Remote Config operating model and duplicate already verified code.\nConfidence: high\nScope-risk: narrow\nDirective: Keep policy source and coordinator API changes in the same commit when changing update-gate architecture.\nTested: skip android build --plain\nNot-tested: Remote Config values fetched from production Firebase.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
AppVersionPolicyClient: Firebase Remote Config에서 최소/최신 버전 코드 및 업데이트 메시지를 원격으로 관리AppUpdateCoordinator: Google Play In-App Updates API를 통해 강제/선택 업데이트 흐름 조율Main.kt: 앱 진입 시 업데이트 정책 체크 연결주요 동작
Test plan
android_min_supported_version_code설정 후 강제 업데이트 다이얼로그 표시 확인android_latest_version_code설정 후 선택 업데이트 팝업 표시 확인🤖 Generated with Claude Code