Xcode – “Your binary is not optimized for iPhone 5” after I upload an app with xcode 6.0.1

app-store-connectlocalizationxcode

I am getting this email after upload my binary with Xcode Version 6.0.1 (6A317)

Your binary is not optimized for iPhone 5 – – New iPhone apps and app
updates submitted must support the 4-inch display on iPhone 5 and must
include a launch image referenced in the Info.plist under
UILaunchImages with a UILaunchImageSize value set to {320, 568}.
Launch images must be PNG files and located at the top-level of your
bundle, or provided within each .lproj folder if you localize your
launch images. Learn more about iPhone 5 support and app launch images
by reviewing the 'iOS Human Interface Guidelines' at
'https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5'
and the 'iOS App Programming Guide' at
'https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html#//apple_ref/doc/uid/TP40007072-CH6-SW12'.

Here is my plist file:

enter image description here

Here is my Xcode tree:

enter image description here

Here is my bundle root tree:

enter image description here

Here is the only resource I could find on this issue but it remains unanswered (3 days old)… https://devforums.apple.com/message/1051948#1051948

Best Answer

We faced the same issue and couldn't solve it after trying many solutions, we believe it's a kind of bug in App submission. But we found a workaround which can keep launch images localized and pass the submission verification.

Environment:

Xcode 6.1 (6A1052c) with iOS 8.1 SDK

Precondition:

Have following properties in your "*-info.plist" file.

enter image description here

Steps:

  1. Go to your target's settings and in our standard scenario (localize launch images, which uses "UILaunchImages" in "*-info.plist" but not image assets), it should look like the image enter image description here

  2. Change the setting to use image assets (Note: after this step, Xcode will automatically REMOVE the "UILaunchImages" properties in your *-info.plist file. So please BACKUP the properties first.)

  3. Go to the "LaunchImage" assets (can click the arrow button on the right) and fill with images from one of your *.lproj folder. enter image description here

  4. Now, go to the "LaunchImage" folder which contains images and "Contents.json" file. enter image description here

  5. Remove ALL the launch IMAGES just added, but keep the "Contents.json" (and it's content) file.

  6. Check the "Contents.json", it should contains properties like image below enter image description here

Double check following items:

  • Localized launch images in resource folders (en.lproj, ja.lproj, etc.)

  • *-info.plist contains "UILaunchImages" properties

  • Project setting uses image asset for launch images

  • "Contents.json" in "LaunchImage" asset folder, and the folder DOES NOT really have launch images

Now you can have a try for localized launch images and submit the binary to iTunes Connect. In our App, the workaround did work for "localized launch images" and "submission successful".

It should be a trick for avoiding the bug in submission checking.

Since the workaround above doesn't change any resource, except making the checking thinks we use image assets, we are more convinced that there are some bugs in Apple's checking.

Cheers!

Related Topic