Session-minted upload key: nobody types an app-specific password (v1.64.18.0)
What
Apple's binary-upload tool (iTMSTransporter behind deliver/pilot) never accepts the spaceauth web session — it takes only an ASC API key or an app-specific password (live error -22938, confirmed by fastlane's auth docs). The previous contract claimed the session alone covered uploads; that claim was wrong for this one leg.
The fix is broad, not a patch: the web session mints the API key itself, through the same iris endpoints the App Store Connect web UI uses. Proven live end to end on a real account:
POST /iris/v1/apiKeys(JSON:API,APP_MANAGER,PUBLIC_API) → 201GET /iris/v1/apiKeys/<id>?fields[apiKeys]=privateKey→ base64-of-PEM, decode once (one-time download)- Issuer ID =
provider.publicProviderIdfromGET /olympus/v1/session - JWT from the minted key → official API lists the team's apps ✅
Stored at ~/.appstoreconnect/private_keys/AuthKey_<id>.p8 + fastlane api-key JSON ~/.gstack/apple/api-key.json (0600). The key never expires → repeat releases skip sign-in entirely. New escalation ladder: mint → re-sign-in + re-mint → self-service ASP only on a team-permissions refusal (non-admin member).
Testing
bun run test:gstack2green; parity 4,359 checks pass, all 3 Apple pins survivebun test(full free gate) exit 0- Live probe: key minted, JWT validated against
api.appstoreconnect.apple.com
🤖 Generated with Claude Code
Summary by cubic
Uploads now use an App Store Connect API key minted from your web session. No app-specific password prompts, and repeat releases skip sign-in.
- New Features
- Mint the upload key via
irisafter the firstfastlane spaceauth, then store it at~/.appstoreconnect/private_keys/AuthKey_<id>.p8and~/.gstack/apple/api-key.json(0600). The key does not expire. - Run
deliver/pilotwithapi_key_path; the session remains only forproduceand re-minting if the key is revoked. Escalation: mint → re-sign-in + re-mint → app-specific password only on team-permissions refusal. - Updated
skills/ship/references/APPLE-RELEASE.md; bumped version to1.64.18.0.
- Mint the upload key via