apple build: a line before each slow step (App Store Connect reads, device families, web build)

This commit is contained in:
CRTkafa 2026-10-30 00:16:11 +07:00
parent 064a708fdb
commit 724f5b9763
2 changed files with 5 additions and 0 deletions

View file

@ -3,6 +3,7 @@
## Unreleased
- `apple build` prints a line before each slow step (App Store Connect reads, device families, web build), so a run without a terminal that stalls shows where.
## 0.8.61 · 2026-10-29
- TestFlight: `apple.testflight.description` takes a language id or its App Store locale (`en` or `en-US`; an `en-US` key was skipped silently), `check` names an unknown key, and `distribute --submit-review` stops (dry run: warns) when the app's primary locale has no beta localization (Beta App Review answers 422 MISSING_BETA_APP_LOCALIZATION).

View file

@ -172,6 +172,8 @@ export async function run(ctx: Ctx): Promise<void> {
let build = a.get('build-number');
let teamId = signing.teamId ?? null;
if (!build || !teamId) {
// a line before each slow step: a run without a terminal (launchd job, CI) that stalls shows where
log(TAG, `reading App Store Connect (${[!build ? 'next build number' : '', !teamId ? 'team id' : ''].filter(Boolean).join(', ')})`);
try {
const c = await ascClient(root, bundleId, config.apple?.appId);
if (!build) {
@ -191,6 +193,7 @@ export async function run(ctx: Ctx): Promise<void> {
// device families: an upload that drops one the live version supports (iPad) is refused only AFTER the archive (ITMS-90101)
// so compare first: stop before building with the exact fix (--allow-device-gap builds anyway)
let deviceFamilies: FamilyVerdict[] = [];
log(TAG, 'reading the device families of the live version');
try {
const c = await ascClient(root, bundleId, config.apple?.appId);
deviceFamilies = familyVerdicts({ live: await liveDeviceFamilies(c, await c.app()), project: projectFamilies(root, bundleId, target.project), ipad: config.apple?.ipad });
@ -268,6 +271,7 @@ export async function run(ctx: Ctx): Promise<void> {
else addToSearchList(keychain!);
}
shipPhase('prebuild', 'web build / prebuild');
log(TAG, 'web build / prebuild step');
const web = await webStep({ ...webOpts, dry: false });
for (const n of target.notes) log(TAG, n);
const rsync = foreignRsync(process.env.PATH);