Technical Note TN2407

iOS Code Signing Troubleshooting Index

This document is an index of all of the iOS code signing troubleshooting information. The most important first step is to confirm that your project opts into automatic provisioning; this alone solves many code signing problems. The processes documented by Apple to Run on device, Beta Test, or Submit your app all involve code signing and their related code signing errors are covered in the subsequent sections.

Introduction
Ensure your project opts into Automatic Provisioning
Follow workflows documented by Apple to Run on device, Beta Test, or Submit your app
List of Code Signing Errors
Document Revision History

Introduction

The first step in troubleshooting iOS code signing errors is to configure your project for automatic provisioning. This is the currently recommended and supported workflow, whereas, the manual provisioning process of assigning specific code signing build settings yourself takes longer to do and it is often more problematic.

Ensure your project opts into Automatic Provisioning

The first step to troubleshoot iOS code signing failures is to opt your project into the modern code signing workflow. This is done by enabling automatic provisioning as covered the following guide:

• QA1814 - Setting up Xcode to automatically manage your provisioning profiles.

Follow workflows documented by Apple to Run on device, Beta Test, or Submit your app

The second step in troubleshooting iOS code signing problems is to ensure you're following the proper workflow. The following is a complete list of workflows that involve code signing that are supported by Apple.

Run your app on device through Xcode

• App Distribution Guide > Launching Your App on Devices

Beta Testing

The following are two options to beta test your iOS app:

  1. TestFlight Beta Testing

    Using TestFlight to beta test iOS apps involves submitting an app to iTunes Connect that is signed with your App Store distribution provisioning profile. Once the app passes your beta tests you simply queue it for release to the App Store through iTunes Connect. This is the preferred method of beta testing because it does not require you to re-build or re-sign the submission for App Store publication.

    • App Distribution Guide > Beta Testing iOS Apps > Distributing Your Prerelease Build Using TestFlight

  2. Ad Hoc Beta Testing

    To beta test iOS apps using Ad Hoc distribution, follow the steps in:

    • App Distribution Guide > Beta Testing iOS Apps > Distributing Your Beta App Using Ad Hoc Provisioning

Submitting to the App Store

Use the following process to submit your app for review:

• App Distribution Guide > Submitting Your App to the Store > Submitting Your App to the Store

Enterprise Distribution

The documented process to distribute Enterprise apps is covered in the iOS Deployment Reference > Introduction

Client and Contractor Distribution workflow

When a development contractor must distribute an app on behalf of the app client/owner, you must follow the workflow for build engineer distribution covered here:

• QA1763 - How can a build engineer distribute an app on behalf of the team?

Enabling code signing on your other Macs

To enable code signing on your other Macs, OS X user accounts or partitions, use Xcode to export and import your code signing assets using the steps in:

• App Distribution Guide > Maintaining Your Signing Identities and Certificates > Exporting and Importing Certificates and Profiles

List of Code Signing Errors

The previous sections ensure that you opt into automatic provisioning and follow the workflow that involves code signing documented by Apple. For persistent code signing issues, consult the following list of code signing topics and their corresponding troubleshooting material.

Missing Certificate or Private Key errors

These errors indicate that you are missing a required certificate or private key that is needed for code signing:

Missing Signing Identities
No Matching Signing Identity or Provisioning Profiles Found
The Private Key for Your Signing Identity Is Missing
The Private Key for a Developer ID Certificate Is Missing

Use the directions in the following guide to correct these kinds of problems:

• App Distribution Guide > Troubleshooting > Certificate Issues

Provisioning Profile related errors

For general provisioning profile related issues such as:

Invalid Provisioning Profile
Provisioning Profiles Installed on Your Device Are Invalid
No Such Provisioning Profile Was Found

See the following guide's recommendations to resolve them:

• App Distribution Guide > Troubleshooting > Provisioning Issues

Provisioning Profiles Appear Invalid in Member Center

For answers to why your provisioning profile's status changes to Invalid, see the document:

• QA1878 - Resolving the Provisioning Profile Invalid Status

Installation Failure

If your app is experiencing an installation failure, consult the resolutions that are covered in:

• TN2319 - Installation Failure Troubleshooting for iOS

Signature Verification Errors

The following errors are related to app validation:

The bundle is not signed using an Apple submission certificate
Missing or Invalid Signature. (rejection email)
The bundle ... at bundle path ... is not signed using an Apple submission certificate

For help with signature verification errors such as those listed above, use the recommendations and troubleshooting steps covered in:

• TN2318 - Troubleshooting Failed Signature Verification.

Entitlements Errors

Invalid Code Signing Entitlements

Use the following guides to troubleshooting entitlement related errors:

  1. • TN2415 - Entitlements Troubleshooting

  2. • QA1798 - Checking Distribution Entitlements

None of valid provisioning profile allowed the specified entitlements

This error indicates that Xcode expects a specific entitlement for your app but it cannot find a provisioning profile that contains that entitlement. There are different resolutions to this error depending on the entitlement that Xcode is looking for:

  • beta-reports-active

    See the following document that covers this topic in detail:

    • QA1830 - The beta-reports-active Entitlement.

  • All other entitlements

    1. Sync Xcode's local provisioning profile library with the current state of the Certs, ID's and Profiles website using:

      • Xcode > Preferences > Accounts > (your account) > View Details > "⟳" button.

    2. Thoroughly analyze the Capabilities, Services, Entitlements your app uses with the guidance of:

      • TN2415 - Entitlements Troubleshooting

Other Errors

It's not always possible to infer the subject of all error messages. Check the following list of these types of general errors:

Your account already has a valid iOS distribution certificate

This error primarily indicates that your development Mac is missing the distribution certificate and/or its private key. As a result, Xcode is attempting to generate a new distribution certificate / private key pair on your behalf, however, failed to do so because your team already has the maximum number of concurrently allowable distribution certificates.

Use one of the following options to resolve this error:

  • Transfer the missing certificate or private key to your Mac using the steps in section Enabling code signing on your other Macs.

  • Revoke and re-create your distribution certificate using the steps in:

    • App Distribution Guide > Maintaining Your Signing Identities and Certificates > Re-Creating Certificates and Updating Related Provisioning Profiles



Document Revision History


DateNotes
2015-08-18

Link new entitlements troubleshooting document.

2015-07-21

Editorial update.

2015-03-16

Moved Application-Identifier issues to the installation failure technical note.

2015-02-03

added information about application-identifier and previous-application-identifiers entitlements

2014-11-13

reorganization of contents

2014-10-14

Including workflow for testing via iTunes Connect.

2014-10-02

New document that provides a starting point to troubleshoot problems in workflows that involve code signing.