How to upload IPA now that Application Loader is no longer included in Xcode 11

I am using XCode 11 GM Seed 2 (11A420a). I've tried

xcrun altool --upload-app --type ios --file "path/to/application.ipa"
--username "YOUR_ITMC_USER" --password "YOUR_ITMC_PASSWORD"

But it didn't work for me as it were generating an error code like "Error Domain=ITunesSoftwareServiceErrorDomain Code=-22014.

I generated an App Store API Key (see https://appstoreconnect.apple.com/access/api), saved in in my ~/.appstoreconnect/private_keys directory and made this bash script named applicationloader.sh:

#!/bin/bash
APPFILE=$1
set -euo pipefail

# key is in ~/.appstoreconnect/private_keys
KEY="<the key part of the AuthKey_key.p8 file>"
ISSUER="<YOUR ISSUER ID>"
xcrun altool --upload-app --type ios --file $APPFILE --apiKey $KEY --apiIssuer $ISSUER

Then (after a chmod a+x applicationloader.sh) I just type

applicationloader.sh app.ipa

and the app uploads to testflight no problem.

Hope this helps.


Apple today announced that it is making a new version of its Transporter developer application available on the Mac App Store. This app allows developers to easily upload files to App Store Connect and more.

Available in the Mac AppStore

Transporter


November 2019 - the new "Transporter" app

enter image description here

  1. You have to get, from the ordinary mac app store, the Apple app "Transporter". To be clear click the ordinary "App Store" icon, in the icon bar, on your mac, as if you were an ordinary consumer and not a dev. Search "Apple Transporter" and get it. ("Transporter" is totally free).

  2. In current Xcode. As usual, increase the build number, disconnect tethered phones, and click "Archive" as usual. (Don't forget to not-select a simulator!)

  3. When complete, click "Distribute App" in the usual way. Do select "App Store Connect" in the usual way. But. Then select Export ... do NOT select upload.

enter image description here

  1. You will be asked where to save to - be sure to choose your Desktop.

  2. A folder (not file) will be left on your desktop. Notice the current time of day to distinguish the correct folder. (It's annoying when you get the wrong folder!)

  3. In the folder is an ".ipa" file. Everything else is NOT used / of no value whatsoever.

  4. Launch the "Transporter" app. Simply drag only the ipa file into the Transporter app.

Useful Transporter app Tip:

Be sure to look at the Preferences of the Transporter app. It is possible to get rid of (one) of the useless "OK" clicks.

--

Historic notes -

At one point, around Sept 2019, incredibly, appstoreconnect was *not working in Safari for some months. You had to use Chrome. (No, really!) This is now all irrelevant.