How to Export an IPA From Xcode for Testers

Archive your app and export an .ipa for testers with Xcode’s Release Testing option, or from the command line with xcodebuild and an ExportOptions.plist.

Last updated

An .ipa is the file iOS installs. You get one by archiving your app and exporting it with a distribution method.

In Xcode

  1. Choose Any iOS Device as the run destination.
  2. Choose Product, then Archive. The Organizer opens when it's done.
  3. Select the archive and click Distribute App.
  4. Choose Release Testing for ad hoc testers. Older Xcode versions call it Ad Hoc.
  5. Keep automatic signing, click Next, then Export.
  6. The folder you choose contains your .ipa.

From the command line

Save this as ExportOptions.plist, with your own team ID:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key>
  <string>release-testing</string>
  <key>signingStyle</key>
  <string>automatic</string>
  <key>teamID</key>
  <string>ABCDE12345</string>
</dict>
</plist>

Then archive and export:

xcodebuild archive -scheme MyApp -archivePath build/MyApp.xcarchive -destination 'generic/platform=iOS'
xcodebuild -exportArchive -archivePath build/MyApp.xcarchive -exportPath build -exportOptionsPlist ExportOptions.plist

On Xcode versions before 15.3, use ad-hoc as the method.

Which devices are in the build?

An ad hoc export only installs on the devices in its provisioning profile. Each new tester normally means registering their iPhone and exporting again.

With BuildFerry you export once. Upload the .ipa and BuildFerry re-signs it for every iPhone you approve, so the devices in your own profile don't matter.

Send it from the terminal

Right after exporting, upload from the same folder with a token from Upload from CI in the dashboard:

export BUILDFERRY_TOKEN=bf_your_token
npx buildferry upload

It finds the newest .ipa, uploads it and prints the share link. In CI, use the GitHub Action or a fastlane lane instead.

Questions

Which distribution method should I choose for testers?

Release Testing, called Ad Hoc in older Xcode versions. It signs the app for registered devices without App Review.

Can I export an IPA without a paid developer account?

Not one you can share. Ad hoc and other distribution methods need a paid Apple Developer membership.

Where does Xcode save the exported IPA?

In the folder you choose at the end of the export. It contains the .ipa along with a few log and plist files.

Send your first build