shots: Mac App Store screenshots (mac size, APP_DESKTOP to the macOS version), a landscape layout (Mac window or bare; Mac, Play Chromebook, Play tablets), safe margins in every template checked by shots check from the render's layout boxes, a contact sheet timeout that scales with images, sizes and load; pitfall 80

This commit is contained in:
CRTkafa 2026-10-20 03:29:19 +07:00
parent 30488c512d
commit e59539fec8
26 changed files with 532 additions and 67 deletions

View file

@ -3,7 +3,7 @@
import { consoleLink, consoleUrl } from './console-links';
import { type FixAction, fixAppleListing, fixPlayListing, fixReviewDetails } from './fix-actions';
import { iphoneDuoNote } from '../shots/spec';
import { iphoneDuoNote, macNote } from '../shots/spec';
export type Level = 'blocker' | 'warn' | 'ok';
@ -70,6 +70,9 @@ export interface AppleSnapshot {
requiredDisplayTypes: string[];
/** apple.iphoneDuo (iPhone Duo renders on) and whether the project has a play section, for the Duo note. */
iphoneDuo?: boolean;
/** The app has a macOS App Store version (any state), and apple.mac (Mac screenshots on), for the Mac note. */
macVersion?: boolean;
mac?: boolean;
play?: boolean;
today?: Date;
reviewDetail: { contactEmail?: string | null; contactPhone?: string | null; contactFirstName?: string | null; contactLastName?: string | null; demoAccountRequired?: boolean; demoAccountName?: string | null; notes?: string | null } | null;
@ -280,6 +283,9 @@ export function appleRules(s: AppleSnapshot): Finding[] {
// iPhone Duo: optional until April 2027, so a passing note (never a blocker); a warning after that date
const duo = iphoneDuoNote({ apple: true, duo: !!s.iphoneDuo, play: s.play, today: s.today });
if (duo) add(duo.level === 'info' ? 'ok' : 'warn', 'screenshots-duo', duo.msg, 'apple.iphoneDuo: true, then storebound shots render');
// a macOS version without Mac screenshots: an info note (the macOS version's own checks run with --platform macos)
const mac = macNote({ macVersion: !!s.macVersion, mac: !!s.mac });
if (mac) add('ok', 'screenshots-mac', mac, 'apple.mac: true, storebound shots render --size mac, apple screenshots --platform macos');
return sortFindings(f);
}