I keep receiving the following message from Apple when submitting my app for approval:
"iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. New iPhone apps and app updates submitted targeting iOS 6 and above 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."
I'm using AIR SDK 3.9 (and I checked to make sure by tracing NativeApplication.nativeApplication.runtimeVersion).
I have a Default-568h#2x.png image in the src folder, and I checked the Project/Properties/ActionScript Build Settings/Package content (I'm using Flash Builder 4.6). It is definitely checked off to be included in the build. In "Export Release Build", I don't see it in the Package Contents there, but I don't see any of the other Default png's either, so I don't think that's the problem.
Does anyone know what I'm doing wrong?
Be sure that the launch images also located in the folder "bin-release-temp"... I have to put them manually into that folder...
The launch images cannot be referenced anywhere in the project. You cannot embed them. You cannot use them. If you do, they are not packaged as launch images, but as images used at runtime. I was having the same problem when I was referencing the images as a SplashScreenImage source. It's an unfortunate way for it to be handled, basically requiring you to include the same image twice, but it is what it is.
This link might help. It describes what and where to keep default images in air application for iPhone deployment.
http://rohitdhore1612.wordpress.com/2013/05/22/air-invalid-binary-iphone-5-optimization-requirement-your-binary-is-not-optimized-for-iphone-5/
Related
had anyone see this issue, not able to publish to app store.
tried everything re-doing the icons, asset catalog, used mac machine, etc
any suggestions?
You are missing a required image on your iOS project. In order to verify this:
Open your iOS project in Visual Studio,
And most likely inside the Resources folder, you will see the Images.xcassets.
When you open that, you will see "AppIcon" on the top.
Open that and you will see several empty slots. If you hover over them, they will tell you what dimensions are needed.
Drag and drop two pictures in the empty location that is required and it should fill up as shown in the picture below:
Most likely, you are missing the iPhone Spotlight 3x or iPhone App 2x image.
issue raised here is the reason for my builds failing
issue
installing this package breaks everything.
https://www.nuget.org/packages/ImageCropper.Forms/
Recently (17 sept 2018) I've got very surprised with following error while uploading ios app:
ERROR ITMS-90096: "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/ios/human-interface-guidelines/graphics/launch-screen."
Launch images in app are in Assets and there were no such problems before for few years! Last successful build was 14 sept 2018. I wonder how this outdated (5-6 years) requirement could happen in fall of 2018?! Did somebody else get this issue recently?
The LaunchScreen file must be called 'LaunchScreen.storyboard', regardless of whether you have specified a name in the plist. Whilst changing the name in the plist will show the correct launch screen, it wont pass this poorly written check.
You can check size of your images with the official Apple page.
https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/launch-screen/
Also I would suggest you to use LaunchStoryboard instead of launch image per each device.
In this way you will avoid mess with missed images for some devices.
You can use one image or even apply some layout for launch screen.
https://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/
I was developed an application using titanium-Appcelerator. I was stuck with
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format'
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '76x76' pixels, in .png format
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '152x152' pixels, in .png format
error while submitting titanium application to AppStore. I developed this application in "CLASSIC'' framework in Titanium. I had referred to many docs and forums regards this issue.
I had tried by setting appicon names as " appicon-60#2x.png,appicon-76#2x.png,appicon-76.png, etc as per guidelines in Project-Name/Resources/iPhone even it was showing the above issue repeatedly while submitting.
What is the list of .png filenames you have in Resources/iphone?
The files you need for the sizes you list are:
appicon-60#2x.png (120x120)
appicon-76.png (76x76)
appicon-76#2x.png (152x152)
You could use the TiCons CLI to generate all the icons using a single 2048x2048 file.
I had this exact issue even though I had all the files correctly named and in the right directory.
I was able to validate my app successfully after cleaning the project in Appcelerator Studio (Project -> Clean), and re-running the distribution build. Subsequent builds would not pass validation (same error) unless I cleaned again in between builds.
(I am using Titanium 7.1.0.GA, Appcelerator Studio 5.0.0.201712081732, and Xcode 9.3)
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.
Environment:
Xcode 6.1 (6A1052c) with iOS 8.1 SDK
Precondition:
Have following properties in your "*-info.plist" file.
Steps:
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
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.)
Go to the "LaunchImage" assets (can click the arrow button on the right) and fill with images from one of your *.lproj folder.
Now, go to the "LaunchImage" folder which contains images and "Contents.json" file.
Remove ALL the launch IMAGES just added, but kepp the "Contents.json" file.
Check the "Contents.json", it should contains properties like image below
Double check following items:
*-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!
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.
I'm testing a sample iOS app now, although I set all new launch images in Xcode (Summary tab of Project Target screen), PhoneGap 3.0 keeps showing its default splashscreen. Why? even when splashscreen is a plugin and not included by default in PhoneGap 3.0 now.
iOS document say about launch images but not splashscreen, and it even strongly recommend us to use a "first screen" similar as launch image, not something like about screen. Are these same?
It's not about cleaning or caching issues at all. The problem is PhoneGap includes all possible launch images in project template by default. These files are under Resources folder and copied to bundle's root folder on build event. Although I properly selected my own launch images in Xcode (Target/Summary screen), default PhoneGap's specific files e.g. Default~iphone.png overridden my files :(
Once issue is identified, you can fix it someway, but I prefer below steps:
Delete all default icons and splashscreen files under /platforms/ios/AppName/icons and /splash folders. You surely don't need these placeholder images.
In Xcode, select Targets/AppName, then tab Build Phases, delete all file names of images in the above step in section Copy Bundle Resources.
Add your own images files for app icon and launch images here.
Edit Info.plist file (file AppName-Info.plist under /platforms/ios/AppName/) to include your images, you will need to use CFBundleIcons and UILaunchImageFile keys. Go to iOS developer site for reference.
Splashscreen and launch image are the same thing.
You probably did everything right but iOS (especially in the simulator) often just doesn't change those things (splashscreen, icon etc.) during development process. Try to delete your app, clean your project (in Xcode: Product -> Clean (shift+cmd+k)) and reinstall your app.