38

I am a contract developer. I have written an app (yes, using Xcode!) for a client and now we are ready to ship. I would like to send him a copy of his app which he can sign and submit to the iTunes app store but HE DOES NOT HAVE OR USE XCODE.

(While it's a backup plan, I prefer not to walk him through the process of downloading and installing Xcode (through app store now -- gak!) and then the build & submit that way.)

This was all [fairly] simple 6 months ago, but we're Xcode 4 now, and the process appears streamlined to only allow the developer (team agent) to build, archive, verify & submit to his own account. (I don't know nor do I want my client's dev account credentials.)

As a last resort, I could haul my computer to his office and let him sign-in on it, but that doesn't scale to truly remote work, which is the bulk of what I do. I'm hoping for a solution that involves me sending a binary to the client with a bullet-list of instructions.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Olie
  • 24,597
  • 18
  • 99
  • 131
  • 2
    Download and install XCode for him using Remote Desktop or TeamViewer or another VNC clone with NAT traversal. (And do the rest of the submission except the iTunes account sign in remotely.) – millimoose Oct 28 '11 at 01:00
  • You could probably just ask them to make you a team dev so you could submit the app? – Alexsander Akers Oct 28 '11 at 01:52
  • Hi Olie. I'm also using XCode 4.2 for developing. I dont know to take a build(.app)["Distribution build"] for uploading to iTunes connect to through Application Loader? Please help how to take a build for submitting to iTunes connect through Application loader? I have a guide line for doing in XCode 3.2.5 but dont have from XCode 4.2? Your answer will help to submit my app to iTunes connect. Thanks. – Yuvaraj.M Nov 12 '11 at 06:23

6 Answers6

39

Build your App into an .app file with a "Release" schema:

 xcodebuild -target "${PROJECT_NAME}" -sdk "${TARGET_SDK}" -configuration Release

Package your App as an .ipa:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" --sign "${DEVELOPER_NAME}" --embed "${PROVISONING_PROFILE}”

Then, run Application Loader (Download/Install Application Loader 2.9 if necessary):

open -a /Developer/Applications/Utilities/Application\ Loader.app
  • After it opens select "Next"

    enter image description here

  • Enter your iTunes Connect Apple ID and Password and select "Next"

    enter image description here

  • After your authenticated select "Next"

    enter image description here

  • Select your App and click "Next"

    enter image description here

  • Confirm App compatability

    enter image description here

  • "Choose" the binary file to upload

    enter image description here

  • Select and click "Next"

    enter image description here

  • Start the upload by clicking "Send"

    enter image description here

  • It will will take a few moments to authenticate through the iTunes Store

    enter image description here

  • Once complete, your app package has been uploaded to the iTunes Store. Click "Next"

    enter image description here

  • You are "Done"!

    enter image description here

  • Your App will show a Status of "Upload Received"

    enter image description here


Links:

Apple Doc - Using Application Loader

automating-over-the-air-deployment-for-iphone

How To Upload Your App To iTunes Connect Using Application Loader

Gardner Bickford
  • 1,934
  • 1
  • 17
  • 25
chown
  • 51,908
  • 16
  • 134
  • 170
  • 3
    Note this is an old version of `Application Loader`. You can find the newest one in your `XCode` directory under `Applications/Utilities`. –  Oct 28 '11 at 01:12
  • This would be excellent if you just add the bit about how I create the correct binary for him to submit. I take it I use archive, but then do I sign it for him? Does AppLoader sign it? How do I set up the schemes to sign properly? Etc. Thanks! :) – Olie Oct 28 '11 at 01:17
  • Ha! Thanks, I get the Application Loader part, I was missing the .iap-from-command line part. Thanks! – Olie Oct 28 '11 at 01:54
  • Binary + instructions sent to client. If it all works, I'll accept this as the correct answer, though I may submit my own summary of your answer, for folks just looking for a cheat-sheet. Thanks again! – Olie Oct 28 '11 at 02:14
  • @chown I'm also using XCode 4.2 for developing. I dont know to take a build(.app)["Distribution build"] for uploading to iTunes connect to through Application Loader? Please help how to take a build for submitting to iTunes connect through Application loader? I have a guide line for doing in XCode 3.2.5 but dont have from XCode 4.2? Your answer will help to submit my app to iTunes connect. Thanks. – Yuvaraj.M Nov 12 '11 at 06:25
  • Can we give the app version number as string? something like india14? – Ganesh Jun 17 '14 at 07:40
  • Application Loader was discontinued, I think in 2018. For recent solutions, see answers to [another question](/questions/58337263/how-to-upload-ipa-file-to-app-store-from-mac-os-x-catalina) – Hauke Dec 28 '20 at 10:34
15

Nowadays, Application Loader is deprecated in favor of Apple's Transporter.

  1. Package your App as an .ipa:

    xcodebuild -target "${PROJECT_NAME}" -sdk "${TARGET_SDK}" -configuration Release
    /usr/bin/xcrun -sdk iphoneos PackageApplication -v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" --sign "${DEVELOPER_NAME}" --embed "${PROVISONING_PROFILE}”
    
  2. Send the .ipa to client.

  3. Use Apple's Transporter to upload the .ipa to App Store Connect without Xcode.
Cœur
  • 37,241
  • 25
  • 195
  • 267
7

I have accepted chown's answer as the correct one since it is very detailed and led me to the eventual solution, but I wanted to add this bullet-list answer for any future viewers who might want to see things cheat-sheet style.

Building the binary

  • Edit schemes.
  • Set archive scheme to use RELEASE configuration.
  • Make sure code-sign for RELEASE uses client's App-Store profile.
    • Get this the same way you did in Xcode 3.2, you need his profile, certificate and private key.
  • Build ARCHIVE.
  • SHARE archive.
    • DO NOT RE-SIGN!

Send binary to client

(Email or whatever.)

Client uses ApplicationLoader to upload.

Watch out for this Xcode/Newsstand problem

(Go up-vote that Q&A if you ran into the problem and it saved your bacon! :)

Cœur
  • 37,241
  • 25
  • 195
  • 267
Olie
  • 24,597
  • 18
  • 99
  • 131
4

I'd send your client Application Loader (as long as they run OSX 10.6.8+). It's in /<path-to-xcode-folder>/Applications/Utilities. Send that .app over and they should be able to submit a binary with it. You'll still have to walk them through it, but Apple provides a PDF for that.

2

There are 2 options: either through Xcode it self using archiving or else making the build and submitting it using application loader. But both involve Xcode and a developer account. So I don`t think that there is any chance of you doing it without using Xcode.

Cœur
  • 37,241
  • 25
  • 195
  • 267
  • Thank you, PS. I'm ok using XCode; the thing I'm trying to get at is the steps to create a binary that my client can submit without XCode. ApplicationLoader looks like the correct path, and we're currently working on getting him the correctly-signed (and, I think, archived) build. As I posted earlier, once I get the exact steps (I'm working on chown's answer, now), I'll post a bullet-list cheat-sheet style. – Olie Oct 28 '11 at 18:41
  • -1 because this is incorrect. There are several development environments to build and upload iOS apps without XCode. You still need a developer account, but not XCode. – Henrik Erlandsson Feb 04 '15 at 14:32
0

There are two ways to upload build to app store connect

  1. Using Xcode or
  2. Using any of the applications "Application Loader" or the "Transporter" application from app store

Note: You have to login with the same credentials as of app store connect

Good Luck !!!