Distributing Apple Developer Enterprise Program Apps
The Apple Developer Enterprise Program allows you to develop proprietary, in-house iOS, and watchOS apps that you can distribute to your employees and outside the store.
Apple Developer Enterprise Program
Note: Members of the Apple Developer Enterprise Program can also create Developer ID certificates to distribute Mac apps, described in Distributing Apps Outside the Mac App Store.
Developing Apple Developer Enterprise Program Apps
The workflow for developing Apple Developer Enterprise Program apps is similar to the workflow used by any large organization that develops multiple apps for the store. During development, let Xcode manage your assets for you and use Member Center only as needed. Xcode will create your App ID and configure your project correctly to use the app services you enable.
Build Your Team (Team Agent)
Inviting Team Members and Assigning Roles.
Managing Your Team in Member Center.
Create Shared Team Provisioning Profiles (Team Admin)
If you are a team admin, perform these steps to enable your development team:
- Create a team provisioning profile and enable capabilities.
Configuring Your Xcode Project for Distribution andAdding Capabilities. Xcode automatically creates an appropriate App ID and provisioning profile for you. If you want to use APNs, read Configuring Push Notifications for additional steps. For the capabilities available to an enterprise app, read Supported Capabilities. - Optionally, register test devices.
Xcode will automatically register a device connected to a Mac and selected from the Scheme toolbar menu by team members.
Important:
Begin Development (Team Member)
If you are a team member, perform these steps to get started:
- Adding Your Apple ID Account in Xcode.
- Configuring Your Xcode Project for Distribution.
Select a team that is a member of the Apple Developer Enterprise Program from the Team pop-up menu. Xcode will regenerate and download team provisioning profiles as needed.
Testing Apple Developer Enterprise Program Apps
Archiving Your App, to export an Apple Developer Enterprise Program app from Xcode for beta testing. Only the team agent and team admins can create an ad hoc provisioning profile for distribution. After you export your app, consider using Xcode Server to distribute it to testers and other team members. See Xcode Server and Continuous Integration Guide
Important:
Creating Additional Enterprise Distribution Certificates
As a member of the Apple Developer Enterprise Program, you are allowed to create multiple distribution certificates.
To create another distribution certificate
- Certificates, Identifiers & Profiles, select Certificates.
- Click the Add button (+) in the upper-right corner.
- Under Production, select “In-House and Ad Hoc” and click Continue.
- Follow the instructions to create a certificate signing request (CSR) using Keychain Access, and click Continue.
- Click Choose File.
.certSigningRequest
- Click Generate.
- Click Download.
The certificate file appears in your Downloads folder.
.cer
Managing Expiring Certificates and Provisioning Profiles
You are responsible for managing your team’s certificates and provisioning profiles. Apple Developer Enterprise Program certificates expire after three years and provisioning profiles expire after one year.
Creating Additional Enterprise Distribution Certificates. You cannot renew an expired certificate. Instead, replace the expired certificate with the new certificate, described in Replacing Expired Certificates.
Renewing Expired Provisioning Profiles.
Xcode manages your development certificates and team provisioning profiles for you.
Exporting Your App In-House
To export your app for distribution to your employees and outside the store:
- Archive your app.
- iOS App file (a file with a
.ipa
Note: If you don’t distribute your app using a Mobile Device Management (MDM) system, users can install your app using the iOS App file but then they will need to manually trust your organization to launch the app, described in Manually Trusting an Enterprise Developer.
Creating an Archive
Create an archive of your app regardless of the type of distribution method you select. Xcode archives allow you to build your app and store it, along with critical debugging information, in a bundle that’s managed by Xcode.
Important:
To create an archive
- In the Xcode project editor, choose a generic device or your device name from the Scheme toolbar menu.
You can’t create an archive of a simulator build. If a device is connected to your Mac, the device name appears in the Scheme toolbar menu. Otherwise, choose the generic device. - Choose Product > Archive.
The Archives organizer appears and displays the new archive.
Setting Individual App Icon and Launch Image Files, an Info.plist
Creating an iOS App File
.ipa
To create an iOS App file for distribution
- In the Archives organizer, select the archive.
- Click the Export button, select “Save for Enterprise Deployment,” and click Next.
- In the dialog that appears, choose a team from the pop-up menu, and click Choose.
If necessary, Xcode creates a distribution certificate, provisioning profile, and explicit App ID for you. - In the Device Support dialog, choose whether to export the universal app or variants for a specific devices, and click Next.
- If you want to run the app on any supported device, select “Export one app for all compatible devices.”
- If you want to test all device variances, select “Export for specific devices” and choose “All compatible device variants” from the pop-up menu.
- If you want to test a specific device variant, select “Export a thinned app for a specific device” and choose the device family from the pop-up menu.
- In the dialog that appears, review the app, its entitlements, and provisioning profile.
XC:
- followed by the App ID. If you are using a wildcard App ID, the name of the distribution provisioning profile is
XC:*
.
.ipa
- Review the build options, and click Next.
If you use on-demand resources, check “Include manifest for over-the-air installation.” The manifest file is an XML plist used by a device to find, download, and install apps from your web server. - If you request a manifest file, enter details about your web server in the “Distribution manifest information” dialog that appears.
Enter the following information:
- Name.
- App URL.
- Display Image URL.
- Full Size Image URL.
- Click Export
The Finder shows the exported files.
Manually Trusting an Enterprise Developer
If you send the iOS App File to a user and they manually install it on their device, then they must also manually trust your organization before launching the app. Instruct the user to follow these steps to trust your organization.
Note: An Internet connection is required to trust an enterprise developer. If you're behind a firewall, make sure it's configured to allow connections to https://ppq.apple.com
.
To trust an enterprise developer
- On the device, launch the app, and in the “Untrusted Enterprise Developer” dialog that appears, click Cancel.
This step adds Device Management to Settings. - Tap Settings > General > Device Management.
Note: - Under Enterprise App, tap the organization name.
- Tap Trust “[Organization Name]”.
- In the dialog that appears, tap Trust.
Note:
To untrust an enterprise developer, go to Settings > General > Device Management > [Organization Name], and delete all the apps from the organization.
Installing Your App on Test Devices Using iTunes (iOS, watchOS) and Installing Your App on Test Devices Using Apple Configurator 2 (iOS, watchOS, tvOS).
Learn More About Server Tools
Take advantage of Xcode server tools that support large software development teams.
To learn about | Read |
Continuous integration Use Xcode service running on OS X Server to automate building, analyzing, testing, and archiving your app. | |
Automated testing Set up tests that can be run by Xcode service. | |
Host source control repositories on servers Use Xcode service to connect to remote repositories. | |
Mobile Device Management Use MDM to deploy business and education apps. |