upload --pre-check/--evidence, shots copy translate, game-center --locale-map, play games API-disabled hint

This commit is contained in:
CRTkafa 2026-10-24 12:10:23 +08:00
parent 26f9559e1a
commit fb1609cba7
24 changed files with 599 additions and 27 deletions

View file

@ -5,6 +5,7 @@
// storebound check --aso keyword audit of both listing files (App Store keyword field, Play stuffing); exit 1 on errors
// --json structured result ({ ok, items, warnings, hints, problems } or { findings, errors }), exit 1 on problems
import { localGameFindings } from './games-status';
import { marksNotes, marksPath, parseMarks } from './lib/shots-copy-translate';
import { templateBlockers } from './lib/template-answers';
import { COPYRIGHT_MISSING, templatePlaceholders } from './lib/validate-rules';
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
@ -212,6 +213,13 @@ export async function run(ctx: Ctx): Promise<void> {
if (e.length) throw new Error(e.join('; '));
return `${Object.keys(copy).length} languages x ${config.shots!.scenes.length} scenes`;
});
if (config.shots) {
try {
const cp = resolve(config.shots.copy);
const mf = marksPath(cp);
if (existsSync(mf)) for (const n of marksNotes(parseMarks(readFileSync(mf, 'utf8')), relative(process.cwd(), cp) || cp)) note(n);
} catch { /* unreadable marks: shots copy check says so */ }
}
// Capacitor: the native builds ship the web assets cap sync copied last (pitfall 20)
for (const store of ['apple', 'play'] as const) {
if (!config[store] || prebuildFor(config, store)) continue;