apple iap-submit: DEVELOPER_REJECTED IAP / subscription / group versions (left by a canceled submission) are submitted as they are, plan says 'add (developer rejected, re-submitted as is)', --new-version only for APPROVED / REJECTED, empty draft reused; fake ASC models cancel and re-add. play build / check: warn before Gradle when defaultConfig does not read -PversionCode / -PversionName, with the exact Groovy / Kotlin line (built with AGP 8.13); android.injected.version.code does not override bundleRelease; post-build versionCode mismatch is a hard stop. play-production-release plan: 'Do you want to restart your review?' dialog, Restart review is never-press. Pitfalls 31-33
This commit is contained in:
parent
41d2ffcc24
commit
0b1451800c
18 changed files with 399 additions and 26 deletions
|
|
@ -421,3 +421,41 @@ that fails without the fix (see CONTRIBUTING.md).
|
|||
it) when one out of scope is left, backing off only when none is; `apple status` labels an empty draft "empty draft
|
||||
(harmless; App Store Connect keeps it, not cancellable)" and treats the cancel 409 as harmless; the fake ASC blocks
|
||||
the submit while an item is REJECTED and refuses to cancel an empty draft; `tests/resubmit.test.ts`.
|
||||
|
||||
## 31. After a canceled submission: DEVELOPER_REJECTED versions go in as they are
|
||||
- **Symptom:** the owner canceled a WAITING_FOR_REVIEW submission; `apple iap-submit --with-version --dry` then
|
||||
skipped every IAP ("latest version is DEVELOPER_REJECTED: change it in App Store Connect (or --new-version)") and
|
||||
said "nothing to submit".
|
||||
- **Cause:** canceling leaves the app version DEVELOPER_REJECTED (then PREPARE_FOR_SUBMISSION) and every IAP version
|
||||
DEVELOPER_REJECTED. Apple accepts the same IAP version again: `POST /v1/reviewSubmissionItems` → 201
|
||||
READY_FOR_REVIEW, then the submit → 200 WAITING_FOR_REVIEW. storebound treated it like an approved product.
|
||||
- **Do:** `storebound apple iap-submit --with-version --dry`: the plan lists them as "add (developer rejected,
|
||||
re-submitted as is)" into the open draft (an empty one is reused); then after the owner's yes `--yes`. Use
|
||||
`--new-version` only for APPROVED or REJECTED products whose metadata changed.
|
||||
- **Guard:** `planIapSubmission` (cli/lib/review-submit.ts) takes DEVELOPER_REJECTED IAP, subscription and group
|
||||
versions; the fake ASC models the cancel and the re-add; `tests/resubmit.test.ts`.
|
||||
|
||||
## 32. `play build`: the AAB keeps the build file's versionCode
|
||||
- **Symptom:** `play build` passed versionCode 3, the AAB had versionCode 1 (the post-build check stopped it). The
|
||||
Capacitor `app/build.gradle` read versionCode from an env var.
|
||||
- **Cause:** storebound passes `-PversionCode` / `-PversionName` (and `android.injected.version.*`); a build file
|
||||
that does not read the project property ignores them. `android.injected.version.code` does NOT override
|
||||
`defaultConfig` for `bundleRelease` (checked with AGP 8.13).
|
||||
- **Do:** in `defaultConfig`, Groovy: `versionCode((project.findProperty('versionCode') ?: 1) as Integer)` and
|
||||
`versionName project.findProperty('versionName') ?: '1.0'`; Kotlin:
|
||||
`versionCode = (project.findProperty("versionCode") as String?)?.toInt() ?: 1` and
|
||||
`versionName = project.findProperty("versionName") as String? ?: "1.0"` (your current values as defaults). Not
|
||||
`versionCode (project.findProperty('versionCode') ?: 1) as Integer`: Groovy reads it as `versionCode(...) as
|
||||
Integer` and Gradle fails with "Value is null".
|
||||
- **Guard:** `play build` (also `--dry`) and `check` warn before Gradle with the file, the line and the line to use;
|
||||
the post-build versionCode check is a hard stop; `tests/build-sign.test.ts`, `tests/web-assets.test.ts`.
|
||||
|
||||
## 33. Play "Do you want to restart your review?"
|
||||
- **Symptom:** in Publishing overview, "Submit N changes for review" while a review is running opens "Do you want
|
||||
to restart your review?" with "Restart review".
|
||||
- **Cause:** Play reviews one set of changes at a time; restarting sends the new changes and starts the running
|
||||
review over.
|
||||
- **Do:** never press "Restart review" as an agent: tell the owner a review is running and what restarting means;
|
||||
the owner decides (Cancel keeps the running review).
|
||||
- **Guard:** the `play-production-release` console plan lists the dialog, "Restart review" is in neverPress;
|
||||
`tests/console-play-plans.test.ts`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue