apple creative-assets: App Store Header and Search Results (PRODUCT_PAGE_HEADER_ASSET, APP_STORE_SEARCH_RESULTS_ASSET) through the App Asset Library: local size / alpha / video checks, upload once by MD5, select only approved assets, replace on a changed file; check / validate note, MCP tool, gallery and desktop Art row, docs, pitfall 75
This commit is contained in:
parent
14ffe3545a
commit
e5369090fa
17 changed files with 486 additions and 16 deletions
|
|
@ -33,6 +33,7 @@ import { runScan } from './lib/scan';
|
|||
import type { ScanFinding } from './lib/scan/rules';
|
||||
import { playClient } from './play/client';
|
||||
import { listOneTimeProducts } from './play/products';
|
||||
import { creativeNote } from './shots/creative';
|
||||
|
||||
/** Profile facts for the checks: config + local credentials + public URL checks (no store API). */
|
||||
export async function collectProfile(loaded: Loaded): Promise<ProfileFacts> {
|
||||
|
|
@ -196,6 +197,8 @@ export async function run(ctx: Ctx): Promise<void> {
|
|||
if ((both || a.has('apple')) && config.apple) {
|
||||
try { findings.push(...appleRules({ ...(await collectApple(ctx)), renders: local?.apple })); }
|
||||
catch (e) { findings.push({ store: 'apple', level: 'blocker', code: 'api', msg: (e as Error).message.slice(0, 400) }, ...rendersFindings('apple', local?.apple)); }
|
||||
const creative = creativeNote(config, dir);
|
||||
if (creative) findings.push({ store: 'apple', level: 'ok', code: 'creative-assets', msg: creative, fix: 'storebound apple creative-assets --dry' });
|
||||
} else if (a.has('apple')) warn('validate', 'no apple section in the config');
|
||||
if ((both || a.has('play')) && config.play) {
|
||||
try { findings.push(...playRules({ ...(await collectPlay(ctx)), renders: local?.play })); }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue