feat(ahbg): Galaxy-first shipping — RevenueCat 10.19.1 + Galaxy backend - #25
Conversation
- Upgrade RevenueCat Android SDK 8.10.1 -> 10.19.1 and add the purchases-store-galaxy billing backend (native Galaxy IAP needs RevenueCat >= 10.7.0 plus that module). Store auto-detected at runtime; Entitlements.kt keeps the single benchmark_lab entitlement boundary. - Add Galaxy Store publication runbook (Seller Portal/commercial status, app registration, Samsung IAP, RevenueCat service-account connection, closed-beta purchase verification, review, publish, Devpost URL). - Update RevenueCat provisioning doc for the Galaxy app + Seller Portal service account, and re-scope submission blockers to the Galaxy-first path.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 850ef0f27e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| * RevenueCat 10.x with the `purchases-store-galaxy` billing backend: the | ||
| * store (Galaxy, or a later Play build with its module added) is auto-detected | ||
| * at runtime, so this file never hard-codes a store. |
There was a problem hiding this comment.
Configure RevenueCat for the Galaxy store
When the APK is installed from Galaxy, adding purchases-store-galaxy does not select that backend: PurchasesConfiguration.Builder(...).build() in Entitlements.kt retains the SDK's default Play store. The primary Galaxy build will therefore initialize Google Play billing instead of Samsung IAP and cannot complete Galaxy purchases; configure .store(Store.GALAXY) or use explicit per-store build variants.
Useful? React with 👍 / 👎.
| 2. Add the Android app (`org.interdependency.ahbg`). For the Galaxy-first | ||
| path add a **Galaxy Store** app; add the Play app later if shipping Play. |
There was a problem hiding this comment.
Remove the Play-only sandbox prerequisite
When an operator follows this Galaxy-first path without creating a Play app, the unchanged note at the end of this document still says that store sandbox purchases require a Play Console upload. Galaxy closed-beta verification instead depends on the Seller Portal upload described by the new runbook, so the provisioning instructions are contradictory and can send the release through an unnecessary Play blocker; scope that note to Play or replace it with the Galaxy requirement.
Useful? React with 👍 / 👎.
| 2. Verify the full path on-device: | ||
| install → observe/plan/act/build → persist/reload → | ||
| purchase `benchmark_lab` → entitlement unlocks → restore → repeat. |
There was a problem hiding this comment.
Add an in-app purchase and restore entry point
This closed-beta gate cannot be performed by a fresh user because the Android client has no purchase or restore entry point: PremiumStore only exposes isBenchmarkLabUnlocked(), MainActivity only bridges that query, and there are no offering, purchase, or restorePurchases calls anywhere under the Android app. Even after the Galaxy backend is selected, users can only observe an entitlement acquired elsewhere and cannot buy ahbg_benchmark_lab in this app, so wire the purchase and restore flows before treating this verification step as runnable.
Useful? React with 👍 / 👎.
Galaxy Store pivot (contained repair)
The Galaxy path is shorter than Play for Shipaton (no publishing fee, no
12-tester/14-day gate, no API-36 requirement). This PR makes the one code
change the pivot requires and updates the shipping runbook.
Code
ahbg/android/app/build.gradle.kts: RevenueCat8.10.1 → 10.19.1and addcom.revenuecat.purchases:purchases-store-galaxy:10.19.1. Native Galaxy IAPrequires RevenueCat >= 10.7.0 plus that store module; coordinates and the
v10
PurchasesConfiguration/EntitlementInfos.active/Store.GALAXYAPIswere verified against the published AARs.
Entitlements.ktkeeps the singlebenchmark_labentitlement; store isauto-detected at runtime, so no store is hard-coded.
Runbook + docs
ahbg/submission/GALAXY_STORE_RUNBOOK.md: Seller Portal → Commercial SellerStatus (start first; PayPal/D-U-N-S timing) → register AHBG → Samsung IAP
ahbg_benchmark_lab→ RevenueCat Galaxy app + Seller Portal service account→ closed-beta purchase verification → review → publish → Devpost URL.
submission blockers re-scoped to the Galaxy-first path.
Gates
hmmm
RevenueCat Galaxy app id cannot be produced from this repository.