Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Command upload App/Ipa to the iTunes Connect App Store
#!/bin/bash
set -ex
# This scripts allows you to upload a binary to the iTunes Connect Store and do it for a specific app_id
# Because when you have multiple apps in status for download, xcodebuild upload will complain that multiple apps are in wait status
# Requires application loader to be installed
# See https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html
# Itunes Connect username & password
USER=bla
PASS=bla
# App id as in itunes store create, not in your developer account
APP_ID='1234'
IPA_FILE=$1
IPA_FILENAME=$(basename $IPA_FILE)
MD5=$(md5 -q $IPA_FILE)
BYTESIZE=$(stat -f "%z" $IPA_FILE)
TEMPDIR=itsmp
# Remove previous temp
test -d ${TEMPDIR} && rm -rf ${TEMPDIR}
mkdir ${TEMPDIR}
mkdir ${TEMPDIR}/mybundle.itmsp
# You can see this debug info when you manually do an app upload with the Application Loader
# It's when you click activity
cat <<EOM > ${TEMPDIR}/mybundle.itmsp/metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<package version="software4.7" xmlns="http://apple.com/itunes/importer">
<software_assets apple_id="$APP_ID">
<asset type="bundle">
<data_file>
<file_name>$IPA_FILENAME</file_name>
<checksum type="md5">$MD5</checksum>
<size>$BYTESIZE</size>
</data_file>
</asset>
</software_assets>
</package>
EOM
cp ${IPA_FILE} $TEMPDIR/mybundle.itsmp
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/MacOS/itms/bin/iTMSTransporter -m upload -f ${TEMPDIR} -u "$USER" -p "$PASS" -v detailed
@ghost

This comment has been minimized.

Copy link

ghost commented Sep 23, 2014

line 45 has a typo
cp ${IPA_FILE} $TEMPDIR/mybundle.itmsp

@yakimant

This comment has been minimized.

Copy link

yakimant commented Nov 26, 2014

Thank you!

@devios1

This comment has been minimized.

Copy link

devios1 commented Mar 27, 2015

Second that! Note that you have a typo on line 45: it should be mybundle.itmsp, not .itsmp.

@AlonShm

This comment has been minimized.

Copy link

AlonShm commented May 23, 2015

Hello,
Any idea how to add the metadata also?
Thanks!

@dmi3j

This comment has been minimized.

Copy link

dmi3j commented Jun 30, 2015

I have Xcode 6.3.2 and location for iTMSTransporter is different. Now it's:

/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter

So, line 47 could be changed accordingly.

@plischer

This comment has been minimized.

Copy link

plischer commented Jul 7, 2015

Is there a way to add metadata for uploading your app with debug symbols?

@devios1

This comment has been minimized.

Copy link

devios1 commented Dec 1, 2015

Any idea how software_assets fits into the new software5.4 specification? There is now package/software/software_metadata at the root.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.