Everyone around me, including me, always get confused by the different iOS build types and account types.
I compiled a short guide that explains each build type and account type and what they’re good for.
A build that can be uploaded to the appstore. It can only be installed through the appstore or iTunes Connect either as a regular app (after it is released) or through TestFlight.
I.e. to use this build you must upload it to iTunes Connect.
A build that can be installed using iTunes or XCode.
You usually use this to make testing easier or combined with an enterprise account (see below).
Regular (or appstore) account
The apple account is used to sign and publish builds.
We use the “regular” or appstore account for publishing to appstore and testing internally.
When we build Ad-Hoc build using the regular account, the build can be installed only on devices that have their UDID’s registered in the account and there can only be up to 100 such devices.
We we build AppStore build using the regular account, the build should be uploaded to iTunes Connect. There it can be installed using TestFlight by testers registered in iTunes Connect or published to the appstore.
An enterprise account is meant for in-house distribution of apps without the appstore.
The reason is that when you build an Ad-Hoc build then you have 2 options.
If you sign the build using an In-House provisioning profile then anyone that has the build can install it. You don’t need to register their UDID’s or register them in iTunes Connect. This is good for in-house distribution.
If you sign the build using an Ad-Hoc provisioning profile then you can only install the build on registered devices. But since this is an enterprise account, you can register up to 1000 devices.
You can still build an AppStore build using an enterprise account and publish it to the appstore.
Which Build/Account Should I Use?
You should probably use an enterprise account only if you’re an enterprise that want to distribute the app internally without uploading it to the appstore.
If your means of distribution is the appstore, you should use a regular account.
If you use a regular account and you want to…
- Test internally – make sure every test device’s UDID is in the provisioning profile and create an Ad-Hoc build. Send this Ad-Hoc build any way you want to testers. Or, create an AppStore build and upload it to iTunes Connect. Then add the testers’ emails to the testers of the app (in iTunes Connect).
- Test externally (beta) – create an AppStore build and add the emails of the beta users to iTunes Connect as external testers.
- Publish – create an AppStore build and upload it to iTunes Connect. Test it through TestFlight. Once you’re satisfied All that’s left to do is send it to review.
If you use an enterprise account and you want to…
- Test internally -make sure every test device’s UDID is in the provisioning profile and create an Ad-Hoc build using an Ad-Hoc profile.
- Test externally (beta) – you can use iTunes Connect as above. You can also create an Ad-Hoc build and use other tools (such as HockeyApp) to distribute it to beta testers.
- Publish – create an Ad-Hoc build using an In-House profile.