/** * Validate + upload an .ipa to App Store Connect via `xcrun altool`. * * Validation gate: `--upload-app` returns "accepted" even for packages Apple * later drops server-side (missing launch screen, missing CFBundleIconName, * incomplete UISupportedInterfaceOrientations) — the build then NEVER appears * in /v1/builds and no error surfaces. `--validate-app` catches those rejects * synchronously, so validateIpa runs before uploadIpa. * * Newer Xcode versions ship `--upload-package`; older ones only understand * `--upload-app -f`. We try the modern flag first and fall back exactly once * when altool rejects the flag itself (NOT on real upload failures). * * SECURITY: argv form only (no /bin/sh). The API key is referenced by ID — * altool resolves AuthKey_.p8 from ~/.appstoreconnect/private/keys/, * so no secret material appears in the process list. */ interface AltoolCredentials { ipaPath: string; keyId: string; issuerId: string; } /** * Run `altool --validate-app` against the .ipa and throw IpaValidationError * (code IPA_VALIDATION_FAILED) listing every server-side reject reason. */ export declare function validateIpa(options: AltoolCredentials): Promise; export declare function uploadIpa(options: AltoolCredentials): Promise; export {}; //# sourceMappingURL=upload.d.ts.map