views:

461

answers:

2

iTunes connect keeps rejecting my binary for an application update and it's driving me mad. Usually I can figure it out but I've tried everything I can think of. Maybe someone can lend a hand :)

The error I'm getting is:

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

I am uploading an updated version of my app to the store. The current version is 1.0, this new one is 3.0. Here's what I've tried:

  • Zipped the app bundle with the command line (I've heard the Finder zip utility can be bad sometimes)

  • Checked my app is signed properly with $> codesign -vv myApp (says "Valid on disk)

  • Checked in the build log for the correct provisioning junk to be there
  • Made sure in my Info.plist file the CFBundleVersion and CFShortBundleVersion are incremented from my current version

That's what I can think of to check so far, and everything looks good as far as I can tell.

Now I've read somewhere in the Portal that says you must sign updates with the same Distribution Cert as before, and I am (I think). However I have to sign with a new provisioning profile because the old one I used for App Store has expired (or something, I don't know it just won't work).

THINGS TO KNOW ABOUT MY SITUATION: This update is actually a complete re-write from a new template, BUT I've made sure I'm using the exact same App ID (wildcard) and bundle indentifier) so that shouldn't be a problem.

Also, I've switched machines since I last submitted to the App Store but I remembered to export everything (I think) from my old machine. I still have the old one here, with all the same data on it, if that's helpful. I don't think I've forgotten anything).

Thanks in advance for any help :)

UPDATE

So I've decided to try uploading with the Application Loader to see if it will give me any new errors, and it has, it spewed this out into the console. Perhaps someone can find something meaningful there.

Also of note, the Portal Guide says Updates must be signed with the original Distribution Provisioning profile as was used to sign the original app. I've tried using that old one, but Xcode won't let me select it, as there's "No matching key pair" or whatever. Is there a way to remedy this? According to Keychain I've got my Distribution Cert and its private key, it all looks valid. I've made sure to try Repairing the Keychain in case, but no change.

A: 

This is always the fun part, isn't it?

Assuming you've double and triple checked the usual stuff (using the right cert, compiling for device, have a proper icon file, app ID, etc.)

One obscure reason I've run into was roughly the same as the one outlined here:

http://discussions.apple.com/message.jspa?messageID=9167082#9167082

To sum up, my project.pbxproj file somehow ended up with two different entries for PROVISIONING_PROFILE (even though the XCode interface only showed one). My file looked a bit different from the one posted in that discussion, but removing the extra entry fixed the problem for me.

alex_c
I'm starting to think it might be because of the Distribution provisioning profile I'm using.. In the Portal it says you must use the old one, however when I go to use it, it says No keypair found blah blah and I don't know how to remedy that. Do you have any experience with that? Thanks for your answer so far!
jbrennan
Don't think I've run into that.Does everything look fine in Keychain Access? The distribution certificate should be listed under Certificates with an associated private key.
alex_c
In Keychain everything looks great too... Hmmm. The Portal specifically says you need to use the same Distribution Profile as before... but I still can't seem to get that working..
jbrennan
A: 

It's simple! Just let Finder zip it.

jbrennan