Confluence Wiki users, we will be upgrading the wiki February 25th at 7PM. You can test the new version at https://qa.wiki.service.emory.edu. Please report any issues with the new version via ServiceNow.
Child pages
  • iOS Application Distribution - Technical Discussion
Skip to end of metadata
Go to start of metadata

Overview

This document describes, in technical terms, the process by which iOS applications are distributed after the review process has been completed and the application has been approved for public distribution.

Detailed Steps

  1. Log in to the Apple Developer Portal using Emory's Apple Developer account (apple-developer@emory.edu) and create an App Id and Distribution Mobile Provisioning profile for the application.  If the application uses push notifications, follow the instructions to create that certificate as well.  It will be used later.
  2. Download the mobile provisioning profile to your machine in a directory created specifically for this app.  Example:  Downloads/HUBuddy/ios
  3. Log in to iTunesConnect using Emory's Apple Developer account (apple-developer@emory.edu) and create the meta-structure for the application.  Use the App Id you created via the Developer Portal and the information from the specific Apple Submission Template for this application to fill in all required information.  Work with the development team to gather any additional information that may be required now that wasn't required when they filled out the submission template.  NOTE:  make sure you give the application a version number that matches the version associated to the IPA that you will download from the app catalog in subsequent steps.
  4. Log in to the internal Emory App Catalog and locate the iOS version of application that has been approved and is ready for public distribution.  Generally, this will be the version of the app that has the "(DEV)" qualifier on the end of it's entry name in the catalog.
  5. Navigate to the application details page for that app by following the main link for the app.
  6. Select the Policies tab and confirm that the application DOES NOT have any policies applied to it.  If the app has policies applied to it, work the the ops team to remove those policies before continuing.
  7. Navigate back to the Details tab and follow the "Download" link for the latest version of the app (the version that's been approved for public distribution).
  8. Proceed to download the application to your local machine and copy the IPA to a location created for this application.  Example:  Downloads/HUBuddy/ios
  9. Open the iResign application.  iResign is a third party utility we've been using for several years to re-sign applications that have already been signed with our Enterprise credentials (oit-arch@listserv.cc.emory.edu).  We'll use iResign to re-sign the application with our public Apple Developer Account credentials (apple-developer@emory.edu).  It basically puts a user interface around all of the re-signing commands that one could do from a command line.  We have made modifications to this application over the years as structures and policies have changed due to Apple's requirements and OS/API upgrades.  NOTE:  we have not been able to use iResign with apps that use third party frameworks yet.  We still need to look into this more and determine a sustainable approach to effectively sign apps that use third party frameworks.  For now, we've just been getting the source code from the developers and re-building the project ourselves but this is not sustainable for enterprise/long-term use.
  10. From within iResign, select:
    1. The IPA that you downloaded from the app catalog
    2. The provisioning profile you created in the Apple Developer portal
    3. Check the "Change ID" checkbox and enter the app id you created in the Apple Developer Portal in step 1 above.  Example:  edu.emory.HUBuddy.
    4. Select the appropriate Emory Distribution Certificate from the drop down list box.  This should be the certificate with the team id of:  "3RQHVA7936"
    5. Click the resign button which will initiate the re-signing process
  11. Once the re-signing process is complete, there will exist a new (second) file in the same directory where you downloaded the original IPA.  Example:  Downloads/HUBuddy/ios/original.ipa becomes Downloads/HUBuddy/ios/original-resigned.ipa.
  12. Rename the original-resigned.ipa file to original-resigned.zip and decompress the file.  This will create a directory structure containing the contents of the resigned IPA.
    1. For apps that are based in ObjectiveC, compress the Payload directory into a zip file.  Example:  Payload.zip.  Then, change the file extension from .zip to .ipa.  This will be the binary you upload via Application loader and it is now signed with the Emory Apple Developer credentials. 
    2. For apps that are based in Swift, there will be an extra directory that is normally not present for ObjectiveC only apps.  This folder is called "SwiftSupport" and it must also be included in the IPA that is uploaded to Apple.  So, for these types of apps, select the Payload and the SwiftSupport folders and compress them both into a single archive.  Then, change the extension of that file from .zip to .ipa and that will be the file uploaded to iTunesConnect via Application Loader.
  13. Open the Application Loader application and make sure you're signed into the Emory Apple Developer account (apple-developer@emory.edu).
  14. Choose the IPA you created in step 12 and follow the steps to submit the app to iTunesConnect.
  15. IF there are no issues, eventually, the binary you uploaded will become available as a build for the meta-structure you created for this app in iTunesConnect.  It can take some time for this to become an option but if there were no issues with the IPA uploaded in the previous step, eventually it will show up.
  16. Assuming all other information has been entered appropriately, you can now submit the application for Apple Review.
  • No labels