As part of the countinues integration process of my iPhone application, I want to create a process that will automatically upload the app (.ipa) file to the apple app store. I already managed to create the package and validate it. Is there a way to upload the ipa file to the appstore via command line?
5 Answers
The previous reply does not work with the new iTunes Connect any more.
You need to use the iTunes Transporter
to upload your app to iTunes Connect. Check out the source code of deliver on GitHub: https://github.com/fastlane/fastlane/blob/master/fastlane_core/lib/fastlane_core/itunes_transporter.rb
You can use deliver to automatically upload new updates to the App Store: https://fastlane.tools/deliver
UPLOAD IPA TO TESTFLIGHT
altool --upload-app -f "${APP_NAME}.ipa" -u $APP_STORE_USERNAME -p $APP_STORE_PASSWORD
To use
altool
from anywhere in the terminal you could add it to your PATH env variable by typing in terminal:Previous to Xcode 11:
MacBook-Pro:~ denis$ export PATH=$PATH:/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/ MacBook-Pro:~ denis$ source ~/.bash_profile
From Xcode 11 and later: (
altool
has changed location)MacBook-Pro:~ denis$ export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin/ MacBook-Pro:~ denis$ source ~/.bash_profile
You should use application loader tool: altool --upload-app -f file -u username [-p password] [--output-format xml]
As describe in: https://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126
You can try using Transporter directly to get away from fastlane if desired. It can also be installed on any OS so container based (docker) uploads are theoretically possible.
Once you have it setup try something like:
iTMSTransporter -m upload -u <usename_email> -p <password> -k 10000 -itc_provider <provider_id> -assetFile MyApp.ipa -assetDescription AppStoreInfo.plist
The provider ID is something you will need to look up using the transporter's -m provider
command