Technical Q&A QA1510

Resolving the Invalid Signature binary rejection

Q:  How do I resolve the Invalid Signature binary rejection?

A: The Invalid Signature binary rejection can be caused by the following reasons. Steps are provided to diagnose and resolve each cause.

Listing 1  Example Invalid Signature binary rejection email.

Invalid Signature - Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target.

Obsolete Code Signing Resource Rules Path

The Code Signing Resource Rules Path build setting is no longer used as of Xcode 6. New projects created in Xcode 6+ do not define a value for this build setting. In addition, if your Xcode project is still defining a value for this build setting it can cause the Invalid Signature binary rejection. To resolve this cause of the error, remove values defined for this build setting using the following steps:

  1. Open the project level build settings using the Xcode project editor.

  2. Select the value portion of the Code Signing Resource Rules Path build setting and press delete.

  3. Repeat step 1 for all app targets (main app, extensions, other plugins or frameworks that are bundled with your app).

  4. Re-create the Xcode archive and re-submit the app.

Figure 1  Blank value properly defined for Code Signing Resource Rules Path build setting.

Dot Files and non-HFS+ formatted hard drives

Dot files are a problem that result from copying an unzipped Xcode project to and from a non HFS+ formatted hard drive. Dot files are also referred to as Apple Double files, or resource forks. Use the following steps to diagnose and resolve this situation:

Do Not Distribute Apps From Beta OS X or Beta Xcode

App Store apps are required to be built with GM versions of OS X and Xcode. If apps are instead built with a beta version of OS X or Xcode, they will be rejected on those grounds. Beta, Seed, Developer Preview and Pre-Release software are synonymous in this context.

Avoid special characters in Executable names

Executable files within your app that contain special characters (i.e. non-numeric, and non-alpha) can cause this rejection. To resolve the problem, change the Xcode target’s Product Name build setting from ${TARGET_NAME} to a string containing only alpha/numeric characters. Also, ensure the value of the Info.plist key "Executable file" is equal to ${EXECUTABLE_NAME}. If identified to be the cause, please file a bug report using Apple Bug Reporter identifying the problematic characters. 



Document Revision History


DateNotes
2015-09-29

Add obsolete code signing resource rules.

2014-09-10

New document that walks thru resolving the Invalid Signature binary rejection.