apple screenshots: iPhone Duo through the App Asset Library (IPHONE_DUO placement group, APP_SCREENSHOT), pitfall 130

This commit is contained in:
CRTkafa 2026-11-08 14:19:12 +07:00
parent b1043f5d79
commit 73a962fbdc
10 changed files with 174 additions and 32 deletions

View file

@ -1610,3 +1610,19 @@ that fails without the fix (see CONTRIBUTING.md).
- **Guard:** `cli/play/old-builds.ts` (play status, validate `old-builds`), `PLAY_NOT_LIVE` in `cli/lib/portfolio.ts`,
`isAutoSendOnly` in `cli/play/review-pending.ts` (the commit is redone without changesNotSentForReview),
`tests/play-old-builds.test.ts`.
## 130. iPhone Duo screenshots were skipped as "not in the API"
- **Symptom:** `apple screenshots` skipped the iPhone Duo sets with "the API has no iPhone Duo display type yet".
Wrong: ScreenshotDisplayType never gets a Duo value. API 4.5.1 put the display class `IPHONE_DUO` into the App Asset
Library (AppAssetLibraryDisplayClass) and deprecated appScreenshotSets / appScreenshots / appPreviewSets /
appPreviews in the same release.
- **Do:** `storebound apple screenshots` uploads Duo (apple.iphoneDuo, renders iphone-duo-outer/ then
iphone-duo-inner/) through the library: `appAssetLibraryRefData` (filter placementTypes APP_SCREENSHOT) gives the
iOS placementProfileGroup of IPHONE_DUO, files go up as appAssetLibraryImages (category
APP_SCREENSHOTS_AND_PREVIEWS), then appAssetLibraryPlacements (APP_SCREENSHOT, that placementGroup, the version
localization). Same MD5 reuse as creative assets; read back.
- **Never:** say an API lacks a store feature after checking one enum: search the whole spec (every schema with the
feature's name) first.
- **Guard:** `cli/apple/duo-library.ts` (duoGroups, syncDuo), `duoDirs` in `cli/apple/screenshots.ts`,
`tests/ppo.test.ts`. Previews and the other display classes still use the deprecated sets until they move too.

View file

@ -71,10 +71,9 @@ in a plain Android tablet body instead of the iPad one.
outer (1398 x 2034) and an inner (2007 x 2853) set, portrait or landscape, PNG / JPEG without alpha, 1-10 each. It is
optional now and reportedly required from April 2027 for builds with the iOS 27.1 SDK or later; `check` / `validate`
print an info note until then (a warning after, never a blocker). `apple.iphoneDuo: true` adds both sizes to
`shots render` / `shots check` / the gallery. The API (4.5.1) has no Duo `ScreenshotDisplayType` yet, so
`apple screenshots` skips the Duo folders with a message and the deep link to the version page; add them in the
console's iPhone Duo tab until then (one constant, `IPHONE_DUO_DISPLAY` in `cli/shots/spec.ts`, takes the names once
the enum has them). No Duo app preview sizes are published. Google Play has no foldable slot: foldables show the
`shots render` / `shots check` / the gallery. ScreenshotDisplayType has no Duo value (and won't get one), so
`apple screenshots` uploads the Duo folders through the App Asset Library (display class IPHONE_DUO, placement
APP_SCREENSHOT; pitfall 130). No Duo app preview sizes are published. Google Play has no foldable slot: foldables show the
7" / 10" tablet sets below.
**Mac App Store.** Apple's Screenshot specifications (checked 2026-10-20) list four 16:10 Mac sizes: 1280 x 800,