iOS Code Signing and Deployment, Explained

tom-hartz - May 18 '20 - - Dev Community

For the uninitiated, deploying apps onto iOS devices can be a daunting and downright confusing process. When developing a mobile app, simulators are great for rapidly going through the code-test loop. However it is still a good idea to test your app on physical devices early and often. Eventually you will want to distribute versions of your app for both internal testing and for production releases as well. XCode has improved quite a bit over the years, making this a lot easier than it used to be. This article will attempt to make clear the requirements for deploying to iOS devices and describe the process of getting an app onto devices.

To deploy applications on iOS, you will need a computer running OS X (MacBook). You will also need to enroll in the Apple Developer Program, for which Apple charges $99 per year. You then will have to register devices manually in the apple iOS dev website, or automatically through XCode. Note that you are limited to registering 100 devices of each type, to which you can deploy directly via USB (100 iPhones, 100 iPads, 100 Apple Watches, etc). When you connect a device through USB, XCode can automatically create a "provisioning profile" for your app, which is essentially a digital signature that allows the app to run on a device. Development builds that are deployed in this manner expire after 90 days.

Another way to deploy dev builds is with Apple's Test Flight. You can create a Test Flight configuration where you can build your app and upload the ipa file (app bundle) to Apple. Each version of your app can then be released to your team for testing. Here, the limits are 1000 users with 10 devices each. Test users will first need to register and install the Test Flight app, through which they can access and install the released app versions. Again, builds deployed this way will only be able to run on the device for 90 days.

To deploy to the app store, you must build and sign your app for release, and upload it to Apple. You can then configure an app submission through App Store Connect (formerly iTunes Connect). Once the team from Apple has reviewed and approved your submission, your app will appear in the app store and be available for download. Releases deployed this way will not expire.

To deploy releases without the app store, you will need to enroll in the Apple Developer Enterprise Program which costs $299 per year. This is a separate account, in addition to the $99 Developer Program if you still want to deploy to App Store! The Enterprise program will allow you to create provisioning profiles that can be deployed to devices without the app store. These builds can be deployed by hosting the app with an internal website/download link, and via USB or third party tools like HockeyApp.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .