To create an iOS app with Adobe Experience Manager Mobile, you need to obtain certificates and provisioning profiles required by Apple. You also need to do additional setup work for creating an internal app or submitting an app to the iTunes App Store.
Download this Companion Guide PDF file (English only) for detailed instructions about using the Apple developer site and iTunes Connect to create the required certificates and assets. The steps and screen shots in this file might not be accurate due to periodic changes in Apple's interface. Check for updates to this document.
To build an iOS development app for testing on registered devices
- Development certificate
- Developer provisioning profile
To build an iOS app for submitting to the iTunes App Store
- Distribution certificate
- Distribution provisioning profile
To build an iOS app with push notifications enabled
- Development push certificate for testing push notifications in development app (Preflight must be enabled)
- Distribution push certificate or sending push notifications in distribution app
To build an iOS app with in-app purchases
- In-app purchases for every non-free collection. The Product ID of each in-app purchase must match the Product ID associated with the collection.
- In-app purchases for every subscription duration (if the app includes subscriptions). The Product ID of each in-app purchase must match the Subscription ID specified in the On-Demand Portal.
To build an iOS app for internal distribution (Apple Developer Enterprise account required)
- Enterprise development certificate
- Enterprise provisioning profile
You must be enrolled in Apple’s iOS Developer Program to submit your app to the App Store. You need to keep your enrollment current and paid for as long as you want your app to appear on the App Store.
If you have not already signed up for the iOS Developer Program, visit https://developer.apple.com/programs/enroll/ to get started. For purposes of creating apps, you can enroll as either an individual or a company.
Someone else in your company may already be enrolled in the iOS Developer Program. You may be able to ask your IT department to create the required App ID, certificates, and provisioning profiles. If so, this will make the process much easier for you. No knowledge of the AEM Mobile workflow is required to create these items, so this is an easy task to delegate to someone else.
After you enroll in the iOS Developer Program and submit your payment, Apple will send you an email message that prompts you to activate your account.
If you are offering paid content through in-app purchases, make sure that you provide bank and tax information to Apple.
You can build two general types of iOS apps: a development app and a distribution app. The development app is used for testing; the distribution app is what you’ll submit to Apple once you’ve tested and approved the development app. Apple requires both types of apps to be signed by a valid certificate before they can run on an iPad or iPhone.
You can use the same certificates for multiple apps. They are not tied to a specific app or App ID. However, each app you create requires a separate App ID and separate provisioning profiles.
Who creates the certificates?
If you work for an organization, someone else in your company might be responsible for creating the required certificates. If so, make the necessary arrangements to use those certificates for building your app. Certificates and provisioning profiles can be created on one computer and used on a different computer.
If you're responsible for creating certificates, install Xcode on the computer that you use to create certificates and submit apps. Xcode is Apple’s development environment for creating apps. You don't need need to learn Xcode or any programming. Xcode is required to sign apps. It's also an excellent method to load apps on devices without having to sync the device to iTunes.
General steps for creating certificates
Creating the certificates involves a back-and-forth process between the Apple Developer site (https://developer.apple.com/membercenter/) and the Keychain Access utility on your computer. You use the Keychain Access utility to create a certificate signing request (a different one for each certificate), and then submit the signing request in the Apple Developer site. Then you download the certificate (.cer) file and open it in the Keychain Access utility. Once it's added to the Keychain Access utility, you can select the certificate when signing apps. If you need to use the certificate on a different computer, export the p12 file, specify a password, and send the certificate and password to the person who will sign the app. That person can double-click the .p12 file to install the certificate to the computer. You will complete this process twice: once for the development (testing) app and once for the distribution (submission) app.
For details, see the Companion iOS Publishing Guide PDF or see Apple documentation.
This video by Klaasjan Tukker demonstrates how to create certificates:
Use Apple’s Developer site (https://developer.apple.com/membercenter/) to create an App ID for your app. An App ID is a unique identifier required by Apple to identify an app. A different App ID is required for each app that you create.
When you create the App ID, you specify the Bundle ID. Apple recommends that you use the reverse DNS format, such as com.mycompany.appname. You specify this Bundle ID when you build the app.
The Bundle ID and other App ID settings are stored in the provisioning profile that you create. If you change any setting, such as disabling or enabling push notifications, rebuild your provisioning profiles for that app.
When you build your app, you will have an opportunity to preview the actual app on one or more iPads and iPhones before submitting the app to the App Store. This preview will include your app icon, app name, and the fully functional app. To preview the app, you will need to provide Apple with a list of Device IDs (called UDIDs) of each iOS device on which you will want to preview your app.
You can use iTunes to discover the UDID of any connected iPad or iPhone. Then use Apple's iOS Developer site to register your iPads and iPhones for development apps.
The provisioning profiles determine which iPads or iPhones can install and use your app. Use the Apple iOS Developer site to create two provisioning profiles: a development provisioning profile and a distribution provisioning profile. The development provisioning profile includes a list of Device IDs (called UDIDs). The development app can be loaded only on devices included in the development provisioning profile.
The distribution provisioning profile does not include any UDIDs, because anyone who downloads your app from the App Store can use it. Unlike the p12 certificates, which can be reused for multiple apps, separate provisioning profiles must be created for each new app you design.
The provisioning profile is tied to the App ID. If you edit the App ID—for example, if you enable push notifications—you must re-create the provisioning profile to include these changes.
You specify the provisioning profile when you use the AEM Mobile Signing Tool to sign the app.
Before you can submit your distribution app to Apple, you must create a record of your app in iTunes Connect. This record includes the information that appears in the App Store and the information required to manage the app. Once you set up the iTunes Connect record for the app, you can create in-app purchases and submit the distribution app.
Sign in to iTunes Connect (https://itunesconnect.apple.com/) using your Apple iOS developer account credentials.
Apps that have Magazine in the category or sub-category setting in iTunes Connect must be enabled for Newsstand. If you don't want your app to be in Newsstand, do not select Magazine as a category or sub-category.
If you want to sell collections in your app, use iTunes Connect (http://itunesconnect.apple.com) to create an in-app purchase for each non-free collection. You also need to submit each In-App Purchase to Apple for approval. (Apple does not require Product IDs for free collections to be approved.)
For the Product ID associated with each collection, it’s important to specify the same Product ID specified when setting up the In-App Purchase in iTunes Connect. Doing so links the In-App Purchase to a specific collection. Create In-App Purchases only for non-free Product IDs, not free Product IDs.
The Product ID of an individual collection should be in the “com.company.appname.collectionname” format, such as com.mycompany.nwscenery.20150306.
Apple allows you to offer promo codes for in-app purchases. Use iTunes Connect to request promo codes.
Use the Product and Subscriptions section of the On-Demand Portal to specify the Product IDs you create in iTunes Connect. See In-app purchases and subscriptions for AEM Mobile apps.
Make sure that you submit In-App Purchases well in advance of when you plan to make the collections available—even before you create the collection. Apple reviews the contents of the In-App Purchase issue at its sole discretion. Many publishers submit multiple In-App Purchases without publishing the corresponding collections, and Apple has approved. In rare cases, Apple might require you to publish your collection before approval.
In your app, you can offer two types of subscriptions: Standard and All Access.
- Standard subscriptions give users access to non-free content in your app in which the Product ID's availability date falls between the start date and the end date of the subscription. If users do not renew, they are still entitled to that content.
- All Access subscriptions give users access to all content in your app regardless of available date. If users do not renew, they no longer have access to download any non-free content.
Use iTunes Connect to set up the Product IDs for subscription durations. Use the Auto-Renewable Subscriptions option to create the Product IDs.
If you create a subscription app, you must set up In-App Purchases for the non-free Product IDs associated with collections, as described in the previous section. You must also set up an In-App Purchase for the different subscription duration options (3 month, 6 month, 1 year, and so forth). The Product ID of a subscription duration should be in the “com.company.appname.duration.type” format, such as com.mycompany.nwscenery.6monthstandard.
If you want to use the same duration value (such as "6-month") for both Standard and All Access subscriptions, create a new subscription family in iTunes Connect.
Use the Product and Subscriptions section of the Portal to specify the Product IDs you use for your subscriptions. For each Product ID, specify the appropriate Availability Date for Standard subscription types. See In-app purchases and subscriptions for AEM Mobile apps.
For apps with iOS subscriptions, make sure that you copy the shared secret from iTunes Connect and paste it into the Store section of the project settings in the Portal. The shared secret is a unique code that lets the app communicate with in-app purchase receipts. Use the same shared secret for all the apps in your company account.
If you enable Push Notifications when creating or editing your App ID, your app is configured to use Apple Push Notification Service (APN). Push notifications let you submit background downloads for collections or send text notifications.
The Apple process for creating .p12 push certificates is similar to the process for creating developer and distribution .p12 certificates. You use the Apple Developer site and your Keychain Access utility to create the .p12 certificate. See the Companion iOS Publishing Guide PDF for details.
Once you create your development and distribution push certificates, use the Notifications section of the Portal to upload your certificates. See Push notifications in AEM Mobile apps.
Use Application Loader to submit your app to the App Store. Make sure that your Application Loader is the most recent version. Application Load is downloaded automatically when you install Xcode.
- Use the AEM Mobile Signing Tool to sign your download app using the distribution (not development) certificate and provisioning profile.
- Use Application Loader to submit your signed .ipa file.
- Use iTunes Connect to select the build you uploaded (it usually takes a few minutes) and submit the app.
You might want to update your app to take advantage of new features or to comply with a new iOS version. In the Apps section of the On-Demand Portal, you can either create a new version of the app or edit an existing version. In either case, use a provisioning profile based on the same App ID used previously. As long as you use provisioning profiles based on the same App ID as the previous version, Apple will recognize the app you submit as a version update.
Use Application Loader to upload the new signed version of the app. Then use iTunes Connect to select the build and submit a new version.