What can cause “invalid binary” with no email followup from iTunes Connect?

感情迁移 提交于 2019-11-28 16:12:37

after 16 hours of non stop research trial and error, and headbanging I have found a solution in apple developer's forum.

Apparently there is a bug allowing your binary to pass verification and upload, but then to get rejected by iTunes Connect system. And you don't get any email explaining you what happened!

If your App is for both iPhone and iPad, you probably have something like this in the Info.plist file:

You should completely remove the CFBundleIconFiles~ipad parameter and include the iPad icon in the Icons files array instead like here:

That's all folks!

Let me know if that helped you!

I had the same INVALID BINARY error from iTunes Connect even if Application Loader accepted my binary. The solution was very simple...

Open your info.plist, right-click and check Show Raw Key/Values:

  • CFBundleIconFile = Icon.png (my iPhone 57x57 PNG icon)
  • CFBundleIconFile~ipad = Icon-72.png (my ipad 72x72 PNG icon)
  • CFBundleIconFiles = array
    • Item 0 = Icon.png
    • Item 1 = Icon@2x.png (my iPhone 4 114x114 PNG icon)
    • Item 2 = Icon-72.png

Save, clean all targets, build and analyze, compress in Finder and resubmit!

The error was caused because I typed the key "Icon Files". In Raw view, this has mapped to "Icon Files" instead of CFBundleIconFiles. I have Xcode 3.2.3, I guess Xcode 3.2.4 better maps this key identifier.

Good Luck everybody!

Source: Technical Q&A QA1686: App Icons on iPad and iPhone

Thanks to everyone who proposed solutions. As it turns out, none of your suggestions helped in my case, but I did solve the problem. Here's what worked for me:

Delete Entitlements.plist from your project. Then do Add -> New File and re-add Entitlements.plist.

The format of the Entitlements.plist changed between SDK 3.1.3 and 3.2. If your Entitlements.plist was created with an SDK earlier than 3.2, and you're now trying to update your app using SDK 3.2 or greater, it appears that you have to delete the Entitlements.plist and re-add it using the new format. Otherwise Apple will reject your upgrade as an "Invalid Binary".

I've been having the same problem for a few days. It seems as though this error can be caused by so many different issues, so it's a shame Apple don't elaborate the error with an email.

For me, the solution was to not use "Application Loader" at all!

Instead do the following within Xcode:

  • Select your application go to Build > Build & Archive
  • Once this is complete, go to Window > Organizer
  • Select your application under "Archived Applications"
  • Click'Validate'
  • If the validation is a success (as mine was):
  • click 'Submit'.

This will then submit the application to apple. For me, after a few seconds the status was changed to 'Waiting for review' rather than 'Invalid Binary'.

In XCode, click on your app name on the left side and go to the build settings tab on the right side. Scroll down to "Code Signing Identity" -> "Release"

Be sure that your distribution profile is selected. I didn't realize I had to explicitly set this and my app was verified just fine, but the binary invalid. My setting was still on the developer profile

Use the build & archive tools in Xcode as described in another response here.

For some reason the archive tool triggered something at Apple to send back email telling me what was actually wrong (corrupt PNG file).

My issue? Xcode corrupts some PNG files when it compresses them. Go to Build Settings, look in the Packaging section and set "Compress PNG Files' to no.

Currently (May 8 2013) this error is thrown if you access UDUD in your app. MKStoreKit (a popular open source library) does, and that was what was causing it for me. Search for the following method below in your files (assuming it's not in a precompiled binary, in which case, go google whatever you have and check their release notes)

[UIDevice currentDevice].uniqueIdentifier

None of the Answers here were helpful to me. I use Cocoapods in my project. For some reason the Cocoapods project settings Base SDK, and Supported platforms was set to OSX. (Cocoapods version: 0.37.2) I switched it over to iOS and it worked.

I had the same problem and it was apparently tied to the size of the Default startupscreen image shipped with the app.

I was sending 1024x768 default image but I have find in this article :

http://weston-fl.com/blog/?p=840/

That it needs to be 1024x748 (for a landscape default) and I seems it worked : iTunesconnect took it after that.

Jmart

This may be an issue of the following, which I received after a submission from an automated response from iTunesConnect:

Missing Push Notification Entitlement - Your app registers with the Apple Push Notification Service, but the application signature's entitlements do not include the required "aps-environment" entitlement. Make sure you have enabled Push Notification Services for this app, and that you have downloaded a Distribution provisioning profile that includes the "aps-environment" entitlement.

Once you have corrected the issue, please return to the application's version details page in the iTunes Connect Manage Your Applications module and click on the Ready to Submit Binary button. This will take you through the binary submission flow and return your application version status to Waiting for Upload. You can then use Application Loader to upload your new binary. If any other issues are found with your submission you will be contacted.

It might be a privacy-related issue in iOS 10. It requires developers add description when using user privacy data such "Open Photo Library", "Open Camera", "Access Calendar"... and so on.

Please go check every part of your codes included 3rd-party frameworks to see if it has some privacy issues. Add the description to Info.plist file then. I solved it by this way ^_^

The trick of the IPad icon do work.

Remove the CFBundledIconFiles~ipad and add a 72x72 icon to the Icon Files key

Beware with the screenshots, this method sometimes, creates the Missing Screenshots Error

I've been struggling with the same problem for quite a while now. I discovered this morning that the team agent had all the notifications turned off, so I turned them all on and finally started getting state change emails when the app changed to "Waiting For Upload", but still nothing when the state changed to "Binary Invalid". After a few more attempts, I finally got the app update into the "Waiting For Review" state. What solved it for me was changing the value of "iPhone OS Deployment Target" in the target's build settings from iPhone OS 2.2.1 (the setting for the original app) to iPhone OS 3.0.

i had this problem. my issue turned out to be setting the deployment target to something less than 3.2, but having the architecture still set to 'optimized for armv7.' this is using xcode 3.2.3. the latter setting should be changed to 'standard (armv6 and armv7).' when i'd built my development app, i had to change it, because xcode complained when i tried to run the app on an older itouch, but with a distribution build there's no device to run on (unless you test with an ad hoc first), so you don't notice the problem until itunes connect rejects the binary.

I have the same problem. I tried the entitlements thing first, as it seemed like it fit my situation.

Boy are they different: OLD entitlement plist:

<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <false/>
</dict>

New one... (xcode 3.2.5, 4.2 target and min iOS)

<plist version="1.0">
<dict>
    <!--- Required entitlements (in most cases shouldn't be changed) --->
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>

<!--- Custom entitlements below --->


</dict>
</plist>

I struggled with this for half a day. Even tried reinstalling xcode. For me the answer was going back to the provisioning portal in itunes connect and revoking my certificate then making a new one. Then making a new distribution provisioning profile, then rebuilding and resubmitting. What a long undocumented pain in the neck.

In my case, I had generated provisioning profiles using a different CSR & not using the original CSR which was created the first time to access the provisioning portal. Code signing & submitting the apps with provisioning profiles generated of the original CSR resolved my issue.

I encountered same "invalid binary" issue for several times today. Finally I solved it by checking build messages in XCode 4. click show all messages for build log, find code sign and validate part, normally on the bottom. All of my failed submission has validation error in build log, but passed in archive - validate button.

Same problem, different solution: my archive scheme was using ad hoc build configuration, when it should have been release.

Checklist for my failed fix attempts at my blog Application Failed Codesign Verification.

I have same issue. Make sure you have choosen "App Store" as distribution method in distribution provisioning profile, not "Ad Hoc".

I had a pointer to an extract icon file that no longer existed. I deleted the pointer, and the upload seems acceptable, so far. They did send an email fairly promptly that gave relevant details, though the hints above put me on the right track before that, as usual.

Thanks.. it was a problem with the icon files in my project. I have removed those as suggested by Sasho. Finally changed to waiting for review.

If in case of newsstand app.

Ensure the newsstand icon is added. In my case the issue is I forget to add newsstand icon in project bundle, but I refer it in plist.

Application loader will not validate newsstand icon so the error 'invalid binary' shown only in 'iTunes connect'.

thanks

Just had the same problem here, and it seems the solution was to add the missing Retina 4 inches startup screen to my project (I removed it on purpose - previous updates were OK with that, but it seems they don't like it any more), as recommended in the logs when archiving the application.

I got this error when I recently added Flurry Ad in my application.

If your case is about advertisements, you must accept in itunesconnect before uploading. http://techcrunch.com/2014/04/11/apple-developers-must-now-agree-to-ad-identifier-rules-or-risk-app-store-rejection/

I just got mail from apple

Missing 64-bit support - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.

So please remember to add arm64 as valid architecture in project target settings as well as project settings

Now add arm64 by

And it will look like

2015

The Invalid Binary issue can now be caused if EMBEDDED_CONTENT_CONTAINS_SWIFT is true, but fail to actually include any Swift code in the binary.

Go ahead and falsify this value in the application build settings.

Xcode had also included User-Defined Settings that included the word Swift - I just went ahead and culled that too.

I faced the same problem, tried with most of the solutions and finally come to below solution.

Just Check following things..

1) add arm64 as valid architecture in project target settings as well as project settings

2) Modify info.plist file and add Icons files array with all required images with name.

3) Most important -- because of rejection you changed the version number of application in plist file but not on iTunes portal.
You need to set/manage same version number in app and on iTunes portal. Set this and try to upload binary again,this will resolve your problem.

In my case, I was getting same Invalid Binary status within a couple of seconds for my uploaded app either by Xcode->Organiser or Application Loader with no emails from apple. I replaced PNG files in iconset in my Mac OS X app and issue got resolved.

I got the corrupt PNG file clue from 'Charleston Software Associates', thanks a lot.

Another possible option, received this error message after resubmitting the binary a few times:

Your Info.plist contains the UINewsstandIcon sub-property under CFBundleIcons, which is intended for use with Newstand features. To include Newsstand features, the Info.plist must include the UINewsstandApp=true Info.plist key.

Check your info.plist — I didn't add that property myself, and didn't get any errors during local or Testflight testing.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!