iOS 9 Enterprise Certificate Changes

Apple made changes to enterprise certificates in iOS 9. These changes can cause issues if you are using dynamic frameworks, like PSPDFKit version 4 or 5.

If your app is running fine during development and in the simulator, but fails to start on a device after being archived, you most likely encountered these enterprise certificate issues.

The error message will start like this:

Copy
1
2
3
4
5
Dyld Error Message:
  Library not loaded: @rpath/PSPDFKit.framework
  Referenced from: /private/var/mobile/Containers/Bundle/Application/{Application-ID}/Name.app/Device
  Reason: No suitable image found. Did find:
  [...]

Before you read further, please note the following (quoted from Apple's Technical Q&A QA1886):

Important: Please use caution if you need to revoke and setup up a new Enterprise Distribution certificate. If you are an in-house Enterprise developer you will need to be careful that you do not revoke a distribution certificate that was used to sign an app any one of your Enterprise employees is still using as any apps that were signed with that enterprise distribution certificate will stop working immediately. The above only applies to Enterprise Distribution certificates. Development certs are safe to revoke for enterprise/standard iOS developers.

To fix this issue, you will need to sign your app using code signing certificates with the subject Organizational Unit (OU) set to your Team ID. Apple made changes to its certificates, so you'll need to create a new certificate before signing your app.

Please follow these steps to fix the certificate issue:

  1. Revoke the distribution/developer certificate
  2. Create a new distribution/developer certificate
  3. Update the corresponding profile with your newly created certificate
  4. Archive your app again with the new certificate

Your app's schema should contain the embedded frameworks, if any. Please also specify the correct Bundle ID, Team Name, and Code Signing Identity.

For more information, please take a look at Apple Technical Q&A QA1886.