My binary is not optimized for iPhone 5 while having localized splash screens


My app keeps getting rejected as an invalid binary after uploading it to iTunesConnect via ApplicationLoader. The e-mail notification I'm getting is:


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 with the -568h size modifier immediately following the portion of the launch image's filename. 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 /.../


Which is weird as I'm packing all splash screens in the binary, checked that through extracting my .ipa aswell and they are there (in their respective .lproj-s), correctly named and of correct sizes. I do not use the Asset Catalog, as I haven't found a way to localize that (yet).

What could be the issue for the rejection?


I also face the same problem in my case myapp plist file contains key "Launch Image" after remove the key from plist issue fixed on validation.


The issue here seemed to be that it was expected that the splashes would be in EVERY localization folder, even if I didn't localize the splash for that particular language. INCLUDING Base.lproj. After copying the english splashes into default, the app got through the initial check and is awaiting review as we speak.


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.


Xcode 6.1 (6A1052c) with iOS 8.1 SDK


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

<img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/jiFLJ.png" data-original="https://i.stack.imgur.com/jiFLJ.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />



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 <img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/8sq0T.png" data-original="https://i.stack.imgur.com/8sq0T.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />

</li> <li>

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.)

</li> <li>

Go to the "LaunchImage" assets (can click the arrow button on the right) and fill with images from one of your *.lproj folder. <img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/RDeN3.png" data-original="https://i.stack.imgur.com/RDeN3.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />

</li> <li>

Now, go to the "LaunchImage" folder which contains images and "Contents.json" file. <img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/md3ks.png" data-original="https://i.stack.imgur.com/md3ks.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />

</li> <li>

Remove ALL the launch IMAGES just added, but kepp the "Contents.json" file.

</li> <li>

Check the "Contents.json", it should contains properties like image below <img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/T9Zv6.png" data-original="https://i.stack.imgur.com/T9Zv6.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />

</li> </ol>

<strong>Double check following items:</strong>


*-info.plist contains "UILaunchImages" properties

</li> <li>

Project setting uses image asset for launch images

</li> <li>

"Contents.json" in "LaunchImage" asset folder and the folder <strong>DOES NOT</strong> really have launch images

</li> </ul>

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 "<strong>localized launch images</strong>" and "<strong>submission successful</strong>".

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.



I had the same problem. You don't need launch images if running in ios 8. I made a new launch screen as a storyboard and deleted the xib version. Change the settings in Targets -> General -> Launch Screen file to reflect the new file. And make sure Targets -> Info -> UILaunchStoryboardName is updated as well.


  • “ng e2e” is failling probably in reason of proxy but “ng serve” and “ng test” are working
  • Import multiple files in folder in React / Nextjs
  • Angular 2.3 / Zone.js 0.7.2: Some components broken
  • What icons required for app to submit to MAC App Store?
  • Webdriver Xpath Performance
  • Unable to create child instance for one-to-many on Sequelize.js
  • Submitting two different forms with an external Submit button not working properly
  • Laravel S3 File Upload MimeType Issue
  • printout webpage with @font-face
  • Multiple Layouts Previews for Android in Eclipse
  • Nginx raises 404 when using format => 'js'
  • Protocol issue connecting Derby by db2 ODBC
  • ActionBar with appcompat library v7 (ava.lang.IllegalStateException: You need to use a Theme.AppComp
  • angularjs - ng-show doesn't update class when $interval triggers
  • docker-compose: connection refused between containers, but service accessible from host
  • SQL Server 2005, Caches and all that jazz
  • Matplotlib rotate image file by X degrees
  • how to add semantic ui in a rails app?
  • Why can't I extract data from media file using AVURLAsset in a Playground?
  • CKeditor stripping font tags instead of converting to span
  • SqlCommand back up Database
  • Android Database Error - getWriteableDatabase
  • Web.config system.webserver errors
  • Display issues when we change from one jquery mobile page to another in firefox
  • Getting last autonumber in access
  • Different response to non-authenticated users and AJAX calls
  • Join two tables and save into third-sql
  • Arrow is showed instead of the material design version hamburger icon. Why doesn't syncState in
  • How to model a transition system with SPIN
  • How to make Safari send if-modified-since header?
  • ORA-29908: missing primary invocation for ancillary operator
  • Function pointer “assignment from incompatible pointer type” only when using vararg ellipsis
  • 0x202A in filename: Why?
  • How to pass list parameters for each object using Spring MVC?
  • Data Validation Drop Down Box Arrow Disappearing
  • retrieve vertices with no linked edge in arangodb
  • Setting background image for body element in xhtml (for different monitors and resolutions)
  • File not found error Google Drive API
  • JaxB to read class hierarchy
  • Converting MP3 duration time