“The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.”

If you ever get the above message when you upload the binary to iTunes Connect, you may need to double-check the following points. I found the following helpful  list when scanning the Apple support forum.

These error messages occur frequently for first-timers, and the Dev Forums have many, many threads discussing what they mean and how to deal with them. There are also many reasons why you might get such errors. It’s a generic message that broadly indicates that the file you’re uploading to iTunes Connect is not correctly signed.

Here are a few of the issues involved and how to do them the right way:

* Do sign with your iPhone Distribution certificate and App Store Provisioning Profile (don’t use your iPhone Developer certificate, Developer Provisioning Profile or Ad Hoc Distribution Provisioning Profile).

* Do build on a Mac OS X-formatted drive or partition (don’t use an MS-DOS-formatted drive or partition, a network drive, a folder that is sync’d to such a system (e.g. Dropbox), or a revision control system that doesn’t completely understand Mac OS X files)

* Do create the binary by building for App Store and then looking in the “Products” section of Xcode’s list of files and choosing Show In Finder, then zipping it, then removing all blanks and weird characters from the name of the zipped file.

* Do compress the resulting application.app file using Finder’s Compress command. Don’t use a third-party or command-line tool.

* Do compress the application.app file – don’t compress the the entire project, or other set of files.

* Don’t change the filename or contents of anything related to the application.app file. Any changes at all invalidate the code signature.

* Do set the provisioning file to App Store. Do set the Build Settings for both the Project and the Target with the Code Signing Identity set to that provisioning file.

* Your Product Name (in your Target’s Build settings) and your Bundle name and Executable name (in your Info.plist) must all match. Ideally, the two Info.plist items are set to their default values, and weren’t changed by changing the Product Name.

* Your Product Name and your Bundle Identifier (in your Info.plist) contain only Roman letters, numbers, hypens (“-“) and periods (“.”). That usually means spaces and/or underscores will fail. Do see the “The UTI Character Set” in “Uniform Type Identifiers Overview” in the iPhone Reference Library.

Following these rules should help guarantee success when uploading your app to ITC.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s