-
Notifications
You must be signed in to change notification settings - Fork 0
feat(ahbg): Galaxy-first shipping — RevenueCat 10.19.1 + Galaxy backend #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| # Samsung Galaxy Store publication runbook | ||
|
|
||
| Shipaton accepts a fully published Galaxy Store URL. This runbook follows the | ||
| Galaxy-first order: Seller Portal approval first, code/RevenueCat in parallel, | ||
| then register, IAP, closed-beta purchase verification, review, publish. | ||
|
|
||
| ## 0. Code (done in this PR) | ||
|
|
||
| - RevenueCat upgraded `8.10.1 → 10.19.1` with the `purchases-store-galaxy` | ||
| billing backend (native Galaxy IAP requires RevenueCat >= 10.7.0 + that | ||
| module). Store is auto-detected at runtime. | ||
| - Package stays `org.interdependency.ahbg`; target API 35 (Galaxy does not | ||
| currently impose Play's API-36 rule). | ||
|
|
||
| ## 1. Samsung Seller Portal (start immediately — longest lead time) | ||
|
|
||
| 1. Register a Samsung account at the Seller Portal. | ||
| 2. Request **Commercial Seller Status** (required even for free distribution). | ||
| - Provide identity/business documentation and financial information. | ||
| - PayPal is the supported/easiest payout path. | ||
| - D-U-N-S or international-bank verification can take up to 10 business | ||
| days; Samsung also documents applying without D-U-N-S using business | ||
| documentation. | ||
| 3. Record approval here when granted: `SELLER_PORTAL_APPROVED=<date>`. | ||
|
|
||
| ## 2. Register AHBG | ||
|
|
||
| 1. Seller Portal → Add Application. | ||
| 2. Package name: `org.interdependency.ahbg`. | ||
| 3. Upload the signed release binary (APK or AAB) built with: | ||
| ```bash | ||
| gradle assembleRelease \ | ||
| -PruntimeUrl=https://ahbg.interdependentway.org \ | ||
| -PrevenueCatApiKey=<rc_public_key> \ | ||
| -PahbgStoreFile=/secure/ahbg-release.jks -PahbgStorePassword=... \ | ||
| -PahbgKeyAlias=... -PahbgKeyPassword=... | ||
| ``` | ||
| 4. Fill listing with `STORE_LISTING.md`, privacy policy `PRIVACY_POLICY.md`, | ||
| icon, and screenshots (see `DEMO_STORYBOARD.md`). | ||
|
|
||
| ## 3. Samsung IAP | ||
|
|
||
| 1. Seller Portal → In-App Purchase → create item `ahbg_benchmark_lab` | ||
| (one-time, non-consumable), matching the RevenueCat product id. | ||
| 2. Keep the free core playable without IAP; `benchmark_lab` gates only | ||
| Benchmark Lab. | ||
|
|
||
| ## 4. Connect Galaxy to RevenueCat | ||
|
|
||
| 1. RevenueCat dashboard → add a **Galaxy Store** app with package | ||
| `org.interdependency.ahbg`. | ||
| 2. Create a Galaxy Seller Portal **service account**; give those credentials | ||
| to RevenueCat so it can validate Samsung purchases. | ||
| 3. Create the `benchmark_lab` entitlement and the `ahbg_benchmark_lab` | ||
| product/offering (see `REVENUECAT_PROVISIONING.md`). | ||
|
|
||
| ## 5. Closed beta + purchase verification | ||
|
|
||
| 1. Samsung **Closed Beta** supports in-app purchases and has no fixed | ||
| 14-day/12-person production gate. | ||
| 2. Verify the full path on-device: | ||
| install → observe/plan/act/build → persist/reload → | ||
| purchase `benchmark_lab` → entitlement unlocks → restore → repeat. | ||
|
Comment on lines
+61
to
+63
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This closed-beta gate cannot be performed by a fresh user because the Android client has no purchase or restore entry point: Useful? React with 👍 / 👎. |
||
|
|
||
| ## 6. Review → publish → Devpost | ||
|
|
||
| 1. Submit for Galaxy review. | ||
| 2. Once live, use the public Galaxy Store listing URL as the Devpost entry | ||
| URL (a beta link does not count; the app must be publicly downloadable in | ||
| the US). | ||
| 3. Galaxy optimization notes (Best App for Galaxy category, 20% of score): | ||
| foldable/multi-window support and Samsung-specific features are the | ||
| highest-value follow-ups; exclusivity is a bonus, not required. | ||
|
|
||
| ## hmmm | ||
|
|
||
| - Commercial Seller Status approval time is the schedule risk; it is external | ||
| and started first for that reason. | ||
| - The live Galaxy listing URL, Seller Portal service-account credentials, and | ||
| RevenueCat Galaxy app id cannot be produced from this repository. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,10 +8,15 @@ store consoles; the following steps are the exact remaining external work. | |
|
|
||
| 1. Create the production project in RevenueCat. | ||
| - Record the **project id** here once created: `rc_<TO_FILL>`. | ||
| 2. Add the Android app (`org.interdependency.ahbg`) with the Play public key. | ||
| 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. | ||
|
Comment on lines
+11
to
+12
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
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 👍 / 👎. |
||
| - Galaxy: create a Galaxy Seller Portal **service account** and give those | ||
| credentials to RevenueCat so it can validate Samsung purchases. | ||
| - Play (later): attach the Play public key. | ||
| 3. Create the entitlement `benchmark_lab` (non-consumable). | ||
| 4. Create the product `ahbg_benchmark_lab` (one-time purchase, "Benchmark | ||
| Lab"), attach it to the entitlement. | ||
| Lab"), attach it to the entitlement, and mirror it as a Samsung IAP item | ||
| with the same id in Seller Portal. | ||
| 5. Create an offering (default) containing that product; optionally add a | ||
| trial offering `ahbg_benchmark_lab_trial` if a trial is desired. | ||
| 6. Copy the **public SDK API key** (`appl_...` or `goog_...` public key) into | ||
|
|
@@ -23,6 +28,8 @@ store consoles; the following steps are the exact remaining external work. | |
| -PahbgStoreFile=/secure/ahbg-release.jks \ | ||
| -PahbgStorePassword=... -PahbgKeyAlias=... -PahbgKeyPassword=... | ||
| ``` | ||
| 7. SDK: RevenueCat `10.19.1` + `purchases-store-galaxy` (this PR); Galaxy | ||
| IAP requires RevenueCat >= 10.7.0 and the store module. | ||
|
|
||
| ## Verify (gate items) | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the APK is installed from Galaxy, adding
purchases-store-galaxydoes not select that backend:PurchasesConfiguration.Builder(...).build()inEntitlements.ktretains 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 👍 / 👎.