Coding Tips

Different Ways of Publishing and Distributing a Custom-Built App in iTunes

So, you've just built a custom iOS application and now you need to publish it in iTunes and assist your customer with deploying the app to end users' mobile devices (i.e. app distribution). To make it happen, it's not enough to just have the app's source code, Apple Developer account and AppleID. It always takes more to publish and push the app to the distribution stage of your application lifecycle. Keep reading to find out different ways of publishing and distributing a custom-built iOS app in iTunes.

For starters, let's talk about accesses you need to publish an app:

  1. iTunes Connect - it will activate the following options for you:
    1. You can invite yourself as a developer, a tester or an app manager (a very useful role for app publishing), OR
    2. You can set up the certificates, which will help you put the app into the App Store and the TestFlight
  2. TestFlight invite (if you already have your iTunes Connect account, you don’t need it) - once you get it, you can download TestFlight to your device and then upload the latest version of your custom app for testing.

If the customer doesn't want to provide you with these credentials, you may need to ask them for special roles assignment. That’s also a very important thing to consider, because if you make a mistake and ask the customer for the wrong role, you'll bump into serious issues in the future. So let's review the following roles and what they do:

Check out a related article:
  1. Admin - this role can perform all tasks in iTunes Connect, except sign contracts. A team agent is always assigned the Admin role, and this access can’t be revoked without changing which person on the team acts as the team agent. An admin can assign iTunes Connect roles to other people on the team.
  2. Developer - this role can upload builds, view store details, view TestFlight builds, manage internal TestFlight testers, view crash logs, manage in-app purchases, and enter Game Center information.
  3. App Manager - I guess it's the most important role for app publishing and distribution. The role can create apps and submit versions, edit store details, manage TestFlight builds and testers, manage iTunes Connect users and roles, grant users access to apps, and manage TestFlight users.

Now when you have your AppleID, Apple Developer Account, and access to the iTunes Connect, let’s move on to the app distribution. What should you do next?

Distributing an application – just as with developing an application – requires that applications be provisioned using the appropriate provisioning profile. Provisioning profiles are files that contain code signing information, as well as the identity of the application and the intended distribution mechanism. They also contain information about what devices the app can be deployed to for the non-App Store distribution. Similar to a Development provisioning profile, a Distribution Profile will contain the following:

  • App ID
  • Distribution Certificate

Note that you can use the same AppID and Devices that you used for your development provisioning profile. But if you don’t have one we should create a new Distribution Certificate. It will help Apple to identify our organization. So let’s do it step by step:

  1. Browse the Certificates, Identifiers & Profiles section of the Apple Developer Member Center.
  2. Under Certificates, select Production.
  3. Click the + button to create a new Certificate.
  4. Under the Production heading, select App Store and Ad Hoc.
  5. Click Continue, and follow the instructions to create a Certificate Signing Request via Keychain Access.
  6. Once you have created the CSR as instructed, click Continue, and upload the CSR to the Member Center.
  7. Click Generate to create the certificate.
  8. Finally, download the completed certificate and double-click on the file to install it.
  9. At this point, the certificate should be installed on the machine, but you may need to refresh your profiles to ensure that they are visible in Xcode.

You can also request the Certificate's approval from your Admin. With this Certificate you can now try to push your app to the store. It is important to note that to use iTunes Connect, and to publish an app to the App Store, you must be part of either an individual or organizational Apple Developer Program. You will not be able to follow these steps if you aren't a member of the Apple Developer Enterprise Program. 

Are you looking to hire experienced iOS developers and/or get plug and play resources for your project development?
Let's talk NOW!

The Apple Developer Enterprise Program allows you to develop proprietary, in-house iOS and watchOS apps that you can distribute to users within your organization and those outside the App Store.

What's required for enrollment?

  1. Legal Entity Status
  2. D-U-N-S® Number
  3. Legal Binding Authority
  4. Apple ID - of course! =)

Apple Developer Enterprise Program will cost to you $299 USD per year and will give you an option to deploy and publish your in-house apps. Apple Developer Enterprise Program certificates will last for three years, and provisioning profiles will expire after one year. It is important to note that expired certificates cannot be renewed, and instead, you will have to replace the expired certificate with a new one.

The D-U-N-S Number is a unique nine-digit number that identifies business entities on a location-specific basis. Assigned and maintained by Dun & Bradstreet (D&B), the D-U-N-S Number is widely used as a standard business identifier.

More info here...

Benefits you can get from the Apple Developer Enterprise Program

  • Your application does not need to be submitted for Apple review.
  • There are no limitations as to the amount of devices you can deploy an application to.
  • Apple makes it very clear that in-house applications are for internal use only.

It is also important to note that the Enterprise Program does not provide access to iTunes Connect for distribution or testing (including TestFlight). All apps still need to be signed by Apple.

As with other Apple Developer Programs, only Admin can create Distribution Certificates and Provisioning Profiles in the Apple Developer Enterprise Program. So, if you are Admin, let’s go for the next steps to create a Distribution Certificate:

  1. Browse the Certificates, Identifiers & Profiles section of the Apple Developer Member Center.
  2. Under Certificates, select Production.
  3. Click the + button to create a new Certificate.
  4. Under the Production heading, select In-House and Ad Hoc.
  5. Click Continue, and follow the instructions to create a Certificate Signing Request via Keychain Access.
  6. Once you have created your CSR as instructed, click Continue, and upload your CSR to the Member Center.
  7. Click Generate to create your certificate.
  8. Download the completed certificate and double-click on the file to install it.
  9. At this point, your certificate should be installed on the machine, but you may need to refresh your profiles, to ensure that they are visible in Xcode.

Once you've got your certificate, your app can be distributed securely using a variety of different means, such as:

  • Locally through iTunes
  • An MDM server
  • An internal, secure web server
  • Email

To distribute your app in any of these ways you should first create an .ipa file, an iOS application archive file which stores an iOS app. Each .ipa file includes a binary for the ARM architecture and can only be installed on an iOS device. These .ipa files work as packages for applications and are used to push an application locally to iTunes so that it can be synced directly to a device that is included to the provisioning profile.

To wrap it up, be patient and read the manuals before you do anything within your or your customer's Apple accounts!

Alexander is our iOS developer working on VideoMedicine project. Feel free to contact him on LinkedIn to get in touch!
Intersog does not engage with external agencies for recruitment purposes. Learn more about this here.