An update for an already existing app I have was submitted this morning. The update was very minor barely any changes were made. Apple has now sent me this email stating..
the following issues must be corrected:..
Invalid Bundle Structure - Your package contains a bundle with the following issue: IPA bundle does not include a Payload directory.
How do I fix this?
Ok, my answer has been deleted because it was not an answer to the question.
I do not have enough points to comment your question (that's what I tried to do because I obviously don't have the answer — just the same problem as you and trying to figure out why we're getting this Invalid Binary error)
As I said in my first post: I'll keep you up to date.
Today, I created a new Xcode project, with the same bundleID as the app I try to upload for a week now. It passes through the server-side pre-validation and I received a mail saying it's "Waiting for Review".
It answers one question I had since the beginning: It's not a server problem (I thought Apple had some issues with the pre-validation process).
I tried to play with architectures on this new project (for example, I only use armv7 arch for my App because of some incompatibility with third-part libraries). Still passes the server validation.
Then, I tried to copy the Info.plist file from my app to the new sample project which passes the server validation: BANG -> Invalid Binary!!
This info.plist is quite old, used since Xcode 3.0
I tried to remove some optional keys from it: still invalid binary
Then, I compared the original and needed keys with a new project's info.plist file : bang!
The "CFBundleInfoDictionaryVersion" value was empty. On a new project, the value is "6.0".
I simply set "6.0" for CFBundleInfoDictionaryVersion key and boom, it worked.
My guess is that Apple' servers are checking the info.plist file and needs a proper CFBundleInfoDictionaryVersion value in order to read the .plist file. And I think it's not happening since Xcode 5.1.1, they must have updated their server among with the release of Xcode 5.1.1, that's all.
Jeez, I can't believe how dumb it was. It's a shame that Apple does not provide a comprehensive feedback.
Hope it will work for you! Let me know!
In my Info.plist, somehow my Application requires iPhone environment
was set to NO
.
setting it to YES
fixed this...
This worked for me
Just add the following item in your Info.plist:
LSRequiresIPhoneOS | Boolean | YES