iosxcodemacosapp-store-connectipa

xcrun iTMSTransporter upload fails with OSStatus error -10814


Body:

I'm trying to upload my .ipa file to App Store Connect using iTMSTransporter from the command line:

xcrun iTMSTransporter -m upload -assetFile "/tmp/myApp.ipa" -u "my@email.com" -p "app-specific-password" -itc_provider "MYPROVIDERID"

But I get the following error:

An error (-10814) occurred. The operation couldn’t be completed. (OSStatus error -10814.) (null)

I've verified that:

  1. The .ipa file exists at the specified path.
  2. The credentials are correct (I've used them to list providers with altool).
  3. The provider short name is correct (retrieved via altool --list-providers).

I'm running this on macOS with Xcode installed. iTMSTransporter is located at:

/Applications/Xcode.app/Contents/Developer/usr/bin/iTMSTransporter

Questions:

What does OSStatus error -10814 mean in this context? How can I fix this error and successfully upload the app? Any help would be appreciated!


Solution

  • It seems like the iTMSTransporter app (tool?) is not installed in the MS's based OSX images, and Xcode (IMHO, didn't research too much) has only some kind of dummy invocation proxy service/code to invoke the installed app. It seems like they removed the tool from the base package not long time ago. And when you are trying to invoke it, that 'proxy layer' tries to resolve the real app (service), and when the app-service not found - you see the error.

    For example, when I'm running this command, it resolves the path to the Transporter app, not xcode internals:

    xcrun -f iTMSTransporter
    /Applications/Xcode-16.4.0.app/Contents/Developer/usr/bin/iTMSTransporter
    

    But:

    xcrun -v iTMSTransporter
    ...
    Running iTMSTransporter at path '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter'...
    ...
    

    Since I have to make sure that my pipelines can be executed using the default Azure infrastructure in case of emergency, I can't 100% rely on self-hosted build agents and have to support the default build agent OS.

    So, here is the working solution for it.

        & xcrun altool --upload-app `
            -f $PackageFilePath `
            -t ios `
            --apiKey "$keyId" `
            --apiIssuer "$issuerId" `
            --output-format xml
    

    You have to put the key here:

    $privateKeysDir = "$env:HOME/.appstoreconnect/private_keys"
    $privateKeyPath = "$privateKeysDir/AuthKey\_$keyId.p8"
    

    AuthKey can be generated in the app store admin panel.

    For the self-hosted agent I'm using the iTMSTransporter app which I can install.