19

Whats the best approach for generating an IPA file from command-line?

I'm on xcode 4.2 and generating the archive using:

xcodebuild -scheme AppStore clean archive

This generates the .dSYM and .app files in the build output directory, after codesigning. How should I proceed to generate the .ipa file? In other words, I'm looking for the command-line equivalent of doing the following in GUI

  1. Organizer - Archives
  2. Share
  3. iOS App Store Package
  4. Don't Re-sign

Thanks!

3 Answers 3

19

The missing piece is using the PackageApplication utility.

/usr/bin/xcrun -sdk iphoneos PackageApplication -v $FULL_PATH_TO_APP -o $OUTPUT_PATH

You can also pass this script options for resigning, and profile embedding. Using the --sign and --embed flags respectively.

Sign up to request clarification or add additional context in comments.

5 Comments

How can I access $FULL_PATH_TO_APP? If I'm building the app, instead of archiving, I could use BUILT_PRODUCTS_DIR. Whats the equivalent of BUILT_PRODUCTS_DIR for Archive product dir? I know I could change the location of archive dir to a custom location, but I would hate to have that dependency. Thanks for the answer!
BUILT_PRODUCTS_DIR should work for archive as well, but I thought you said you weren't archiving, but doing a normal build?
No, I'm archiving, but the .app files aren't in BUILT_PRODUCTS_DIR, which is /Users/vasanth/Library/Developer/Xcode/DerivedData/Foo-drauzdtlrihjsddujotyhbjojcpa/Build/Products/Debug-iphoneos/Foo.app rather its available here: /Users/vasanth/Library/Developer/Xcode/DerivedData/Foo-drauzdtlrihjsddujotyhbjojcpa/ArchiveIntermediates/Debug/InstallationBuildProductsLocation/Applications/Foo.app. But I just realized that I could use $INSTALL_DIR instead of $BUILT_PRODUCTS_DIR.
This is no longer a valid answer PackageApplication does not exist
8

This tool makes it trivial to build (and distribute): https://github.com/nomad/shenzhen

1 Comment

This tool is a really great solution. Thanks for posting.
7

After Archive, you need to "Export" to desired format ie ipa:

xcodebuild -sdk iphoneos7.0 -archivePath "path to archive file" -exportPath "path_for_export" -exportFormat ipa -exportArchive -exportProvisioningProfile "provisioning_profile_to_export_with"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.