First in-app purchases left out of a review are caught (pitfall 70): firstProductGaps in validate / release plan (blocker) and the apple submit plan (refuses to leave a never-approved first product out); apple status (WARN + firstProductGaps in --json), release status and the desktop checks warn while a version waits for or is in review without it; iap-review says 'ready, not submitted yet' instead of 'complete'

This commit is contained in:
CRTkafa 2026-10-15 19:31:26 +08:00
parent 1c35a625e1
commit b830a99a5f
16 changed files with 288 additions and 18 deletions

View file

@ -460,7 +460,7 @@ Specs: Apple [App Store Connect API 4.5.1](https://developer.apple.com/sample-co
| `apps_gameCenterEnabledVersions_getToManyRelationship` | GET | `/v1/apps/{id}/relationships/gameCenterEnabledVersions` | read | |
| `apps_getCollection` | GET | `/v1/apps` | read | apple/asc, apple/bundle, apps, console/app-id, console/verify, lib/store-apps |
| `apps_getInstance` | GET | `/v1/apps/{id}` | read | apple/appinfo, apple/status, apps, onboard |
| `apps_inAppPurchasesV2_getToManyRelated` | GET | `/v1/apps/{id}/inAppPurchasesV2` | read | apple/iap, apple/iap-review, apple/iap-submit, apple/offer-codes, apple/promoted, apple/status, catalog, prices, validate |
| `apps_inAppPurchasesV2_getToManyRelated` | GET | `/v1/apps/{id}/inAppPurchasesV2` | read | apple/first-products, apple/iap, apple/iap-review, apple/iap-submit, apple/offer-codes, apple/promoted, apple/status, catalog, prices, validate |
| `apps_inAppPurchasesV2_getToManyRelationship` | GET | `/v1/apps/{id}/relationships/inAppPurchasesV2` | read | |
| `apps_inAppPurchases_getToManyRelated` | GET | `/v1/apps/{id}/inAppPurchases` | read | |
| `apps_inAppPurchases_getToManyRelationship` | GET | `/v1/apps/{id}/relationships/inAppPurchases` | read | |
@ -479,7 +479,7 @@ Specs: Apple [App Store Connect API 4.5.1](https://developer.apple.com/sample-co
| `apps_searchKeywords_getToManyRelationship` | GET | `/v1/apps/{id}/relationships/searchKeywords` | read | |
| `apps_subscriptionGracePeriod_getToOneRelated` | GET | `/v1/apps/{id}/subscriptionGracePeriod` | read | |
| `apps_subscriptionGracePeriod_getToOneRelationship` | GET | `/v1/apps/{id}/relationships/subscriptionGracePeriod` | read | |
| `apps_subscriptionGroups_getToManyRelated` | GET | `/v1/apps/{id}/subscriptionGroups` | read | apple/iap-submit, apple/promoted, apple/subscriptions, apple/win-back, catalog, prices, validate |
| `apps_subscriptionGroups_getToManyRelated` | GET | `/v1/apps/{id}/subscriptionGroups` | read | apple/first-products, apple/iap-submit, apple/promoted, apple/subscriptions, apple/win-back, catalog, prices, validate |
| `apps_subscriptionGroups_getToManyRelationship` | GET | `/v1/apps/{id}/relationships/subscriptionGroups` | read | |
| `apps_updateInstance` | PATCH | `/v1/apps/{id}` | write (dry by default) | apple/appinfo |
| `apps_webhooks_getToManyRelated` | GET | `/v1/apps/{id}/webhooks` | read | |
@ -1246,7 +1246,7 @@ Specs: Apple [App Store Connect API 4.5.1](https://developer.apple.com/sample-co
| `inAppPurchasesV2_promotedPurchase_getToOneRelated` | GET | `/v2/inAppPurchases/{id}/promotedPurchase` | read | |
| `inAppPurchasesV2_promotedPurchase_getToOneRelationship` | GET | `/v2/inAppPurchases/{id}/relationships/promotedPurchase` | read | |
| `inAppPurchasesV2_updateInstance` | PATCH | `/v2/inAppPurchases/{id}` | write (dry by default) | |
| `inAppPurchasesV2_versions_getToManyRelated` | GET | `/v2/inAppPurchases/{id}/versions` | read | apple/iap-submit |
| `inAppPurchasesV2_versions_getToManyRelated` | GET | `/v2/inAppPurchases/{id}/versions` | read | apple/first-products, apple/iap-submit |
| `inAppPurchasesV2_versions_getToManyRelationship` | GET | `/v2/inAppPurchases/{id}/relationships/versions` | read | |
| `inAppPurchases_getInstance` | GET | `/v1/inAppPurchases/{id}` | read | |
| **marketplaceSearchDetails** (3) | | | | |
@ -1377,7 +1377,7 @@ Specs: Apple [App Store Connect API 4.5.1](https://developer.apple.com/sample-co
| `subscriptionGroups_getInstance` | GET | `/v1/subscriptionGroups/{id}` | read | apple/subscriptions |
| `subscriptionGroups_subscriptionGroupLocalizations_getToManyRelated` | GET | `/v1/subscriptionGroups/{id}/subscriptionGroupLocalizations` | read | apple/subscriptions, validate |
| `subscriptionGroups_subscriptionGroupLocalizations_getToManyRelationship` | GET | `/v1/subscriptionGroups/{id}/relationships/subscriptionGroupLocalizations` | read | |
| `subscriptionGroups_subscriptions_getToManyRelated` | GET | `/v1/subscriptionGroups/{id}/subscriptions` | read | apple/iap-submit, apple/promoted, apple/subscriptions, apple/win-back, catalog, prices, validate |
| `subscriptionGroups_subscriptions_getToManyRelated` | GET | `/v1/subscriptionGroups/{id}/subscriptions` | read | apple/first-products, apple/iap-submit, apple/promoted, apple/subscriptions, apple/win-back, catalog, prices, validate |
| `subscriptionGroups_subscriptions_getToManyRelationship` | GET | `/v1/subscriptionGroups/{id}/relationships/subscriptions` | read | |
| `subscriptionGroups_updateInstance` | PATCH | `/v1/subscriptionGroups/{id}` | write (dry by default) | |
| `subscriptionGroups_versions_getToManyRelated` | GET | `/v1/subscriptionGroups/{id}/versions` | read | apple/iap-submit |
@ -1485,7 +1485,7 @@ Specs: Apple [App Store Connect API 4.5.1](https://developer.apple.com/sample-co
| `subscriptions_subscriptionLocalizations_getToManyRelated` | GET | `/v1/subscriptions/{id}/subscriptionLocalizations` | read | apple/subscriptions, catalog, validate |
| `subscriptions_subscriptionLocalizations_getToManyRelationship` | GET | `/v1/subscriptions/{id}/relationships/subscriptionLocalizations` | read | |
| `subscriptions_updateInstance` | PATCH | `/v1/subscriptions/{id}` | write (dry by default) | apple/subscriptions |
| `subscriptions_versions_getToManyRelated` | GET | `/v1/subscriptions/{id}/versions` | read | apple/iap-submit |
| `subscriptions_versions_getToManyRelated` | GET | `/v1/subscriptions/{id}/versions` | read | apple/first-products, apple/iap-submit |
| `subscriptions_versions_getToManyRelationship` | GET | `/v1/subscriptions/{id}/relationships/versions` | read | |
| `subscriptions_winBackOffers_getToManyRelated` | GET | `/v1/subscriptions/{id}/winBackOffers` | read | apple/win-back |
| `subscriptions_winBackOffers_getToManyRelationship` | GET | `/v1/subscriptions/{id}/relationships/winBackOffers` | read | |