An .ipa is the file iOS installs. You get one by archiving your app and exporting it with a distribution method.
In Xcode
- Choose Any iOS Device as the run destination.
- Choose Product, then Archive. The Organizer opens when it's done.
- Select the archive and click Distribute App.
- Choose Release Testing for ad hoc testers. Older Xcode versions call it Ad Hoc.
- Keep automatic signing, click Next, then Export.
- 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.