Screenshots and new iPhone size compatibility

Hi to those who have been creating new apps for itunes connect, do you know if you’re required to make screenshots for the 2 new iphone sizes 6 and 6 plus?

Also are you making them compatible with the new screen displays within your apps?

Also are there new icon sizes that are required now as well?

A little forward thinking.

I’ve just updated and submitted several of my apps (non-corona) to support the new iPhone 6 and 6+ devices and i can confirm yes to all the above. The new XCode 6 requires two additional screen shot images for the new  iPhone 6 and 6+ devices (these are used to determine compatibility similar to Default-568h@2x.png on the iPhone 5 and are 750x1334 iP6 and 1242x2208 for iP6+ in size) also new icons are required (87x87, 120x120 and 180x180). If you don’t add the iPhone 6 and 6+ images the apps/games still work but are digitally zoomed (software blow-up) including the status bar which i find less appealing to optimizing and making the most of the new devices.

Note. the way the load images and icons are done now in XCode 6 is through asset catalogues (.xcassets file with a Contents.json xml table defining the link) so the prior precise file naming e.g. Default-568h@2x.png is no longer important as far as i can tell. 

Which opens up another question, does anyone know whats the new equivalent for supporting the iPhone 6/6+ Retina HD displays in Corona, given the possible move away from the precise naming in XCode 5 “Default-568h@2x.png”, will we be able to define asset catalogs (see below) as done by XCode 6 or is there an alternative approach e.g. “Default-667h.png” ?

  • iPhone 6 portrait launch image: 750 x 1334

  • iPhone 6 Plus portrait launch image: 1242 x 2208

thanks

//xcassets \> LaunchImage.launchimage \> Contents.json   "images" : [     {       "extent" : "full-screen",       "idiom" : "iphone",       "subtype" : "retina4",       "filename" : "Default-568h@2x.png",       "minimum-system-version" : "7.0",       "orientation" : "portrait",       "scale" : "2x"     },{       "extent" : "full-screen",       "idiom" : "iphone",       "subtype" : "667h",       "filename" : "iPhone\_6\_750x1334.png",       "minimum-system-version" : "8.0",       "orientation" : "portrait",       "scale" : "2x"     },{       "extent" : "full-screen",       "idiom" : "iphone",       "subtype" : "736h",       "filename" : "iPhone\_6Plus\_1242x2208.png",       "minimum-system-version" : "8.0",       "orientation" : "portrait",       "scale" : "3x"     },{       "extent" : "full-screen",       "idiom" : "iphone",       "subtype" : "736h",       "filename" : "iPhone\_6Plus\_2208x1242.png",       "minimum-system-version" : "8.0",       "orientation" : "landscape",       "scale" : "3x"     },.. }

I just looked inside the application *.IPA generated by XCode 6 for iPhone 6/6+ deployment, the new image files that are used to denote iPhone 6/6+ are below:

- LaunchImage-568h@2x.png     (iPhone5 ~ 640x1136)

- LaunchImage-800-667h@2x.png      (iPhone6 ~ 750x1334)

  • LaunchImage-800-Landscape-736h@3x.png      (iPhone6+ ~ 2208x1242)

- LaunchImage-800-Portrait-736h@3x.png      (iPhone6+ ~ 1242x2208)

The way I read the guides from Apple is that iOS 6 Launch images come from the asset catalog, which is something the Engineers will have to figure out how to make work for SDK users.  Obviously Enterprise customers can build their own.   There are not apparently “trigger” File names like for the iPhone 5, but just the presence of the files in the asset catalog.

I know you are anxious to be iOS 8 compatible, but please give Engineering some realistic time to make things work.  We get our iPhones just like you do. 

As for the Icons, I think from what I’ve read that you should be able to add:

Icon@3x.png   (180x180)     (3x the 60x60 base iOS 7 Icon)

Icon-small@3x.png (87x87) (3x the 29x29 spotlight/settings icon)

You should already have a 120x120 named Icon@2x.png as this was the iOS 7 icon for the iPhone 4/5 retina displays.  The iPhone 6 will still use this Icon.  The Icon@3x.png is for the iPhone 6 plus.

Rob

Yes as noted above, but as stated in my update this seems to be just for XCode 6 management, i can confirm that once the App is actually archived for distribution into an actual *.ipa file the below image names are used regardless to what was setup in the asset catalog in XCode 6.

- LaunchImage-800-667h@2x.png      (750x1334 ~ for iPhone 6 Portrait)

- LaunchImage-800-Portrait-736h@3x.png      (1242x2208 ~ for iPhone 6 Plus Portrait)

  • LaunchImage-800-Landscape-736h@3x.png     (2208x1242 ~ for iPhone 6 Plus Landscape)

 

…in my case not so eager, simply responding to the original poster by providing info based on my experience updating several apps that have now been approved by Apple for the new iP6/6+ devices and to assist the original poster and others that might find the info of interest.

and Agree, I’m sure more details will emerge as the new iPhone’s 6/6+ device hit the market and others chip in on their experiences. Also for those that have regular apps in addition to corona sdk apps, I would recommend focusing on your regular apps first as Corona apps in general tend to be more forgiving when scaled vs. regular apps especially on the iP6+.

Yes, and i can confirm the file names used in the generated *.ipa as below:

- AppIcon29x29@3x.png (87x87)
- AppIcon40x40@3x.png (120x120)

- AppIcon60x60@3x.png (180x180)

As for the 120x120 already existing, seems XCode 6 needs two separate 120x120 files and doesnt re-use the existing @2x (120x120) for the @3x (120x120) icon, though not sure why that’s the case.

thanks

If Apple still uses the CFBundleIcon table, then it should scan through the listed files, looking for the icon of the size it wants, but that doesn’t mean Apple isn’t going to do something different.  I always felt the requirement for a Default-568h@2x.png file felt like a nasty hack and I can see them forcing people into using these asset catalogs.

How that impacts Corona SDK build.settings files is yet to be determined.

Rob

Thank you, Corona8183 and Rob for this info. I am being tasked with updating 16 Corona-based apps for various updates like adding G.A., and it is requested of course that I make them iOS8-ready while I’m in there.

thanks for this information, i am going to see if they’ll accept my app with the new icons and default images added.

Just to be on the safe side, id also recommend including the new iPhone 5 image (LaunchImage-700-568h@2x ~see below) as this too seems to have a new name, though the old one “Default-568h@2x” should continue to work as far as i can tell, so best to include both if your not space constrained tell further details emerge.

4.0 inch screen: Default-568h@2x.png (old 640x1136 ~ for iPhone 5)

4.0 inch screen: LaunchImage-700-568h@2x.png (new 640x1136 ~ for iPhone 5)

4.7 inch screen: LaunchImage-800-667h@2x.png (750x1334 ~ for iPhone 6)

5.5 inch screen: LaunchImage-800-Portrait-736h@3x.png (1242x2208 ~ for iPhone 6 Plus Portrait)

5.5 inch screen: LaunchImage-800-Portrait-736h@3x.png (2208x1242 ~ for iPhone 6 Plus Landscape)

nb. based on my recent test i can confirm the asset catalogue as noted before is just for XCode’s internal management, when the application is actually built for distribution new standard image names are used for all the launch images and its these that are most likely used by the actual devices to detect compatibility similar to what the iPhone 5 used to do. 

I really want to submit my app, if it has issues I can always reject it later. The review process is so long these days.

If I understand you correctly I can theoretically build using Corona daily and select iOS8 in the drop down, then I can add these images manually into the ipa and zip and then use the Application loader?

Edit: I guess I don’t need to add them manually afterwards, just put them in the root folder and build…

If your in a rush then its worth trying. Certainly adding the below 5 files to your corona directory (similar to how its done for iPhone 5) should give you a better chance of your Corona app being iPhone 6/6+ compatible.

4.0 inch screen: Default-568h@2x.png (old 640x1136 ~ for iPhone 5)

4.0 inch screen: LaunchImage-700-568h@2x.png (new 640x1136 ~ for iPhone 5)

4.7 inch screen: LaunchImage-800-667h@2x.png (750x1334 ~ for iPhone 6)

5.5 inch screen: LaunchImage-800-Portrait-736h@3x.png (1242x2208 ~ for iPhone 6 Plus Portrait)

5.5 inch screen: LaunchImage-800-Portrait-736h@3x.png (2208x1242 ~ for iPhone 6 Plus Landscape)

The info is based on what we know from the current ‘non-indepth’ analysis of XCode-6 build files that target iPhone 6/6+ devices. However, keep in mind that we don’t fully know whether XCode-6 generates any additional files/data (other than the LaunchImages) that might also be required for setting iPhone 6/6+ compatibility. Until we have more info, actual devices or full emulator support to test against we wont know for sure, but for now its a good place to start.

Thanks Corona8183 (You need a better username :slight_smile:

I have created my images and about to upload.

TL;DR

Has anybody been able to confirm with 100% certainty that the iPhone 6 (Retina HD 4.7) launch image is actually displayed at launch?

The issue:

I think I may have stumbled upon a bug regarding launch images. Without having an actual iPhone 6 it’s impossible to tell what the problem may be.

I’m using an asset catalog to set up my launch images and I’m using the iOS Simulator to test my builds.

The iPhone 6+ simulator shows its launch image as expected, however the iPhone 6 simulator doesn’t show any launch image at all (just a black screen) during launch.

If I remove the Retina HD 4.7 image from the asset catalog, the iPhone 6 simulator will show the iPhone 5 (Retina 4) launch image as expected. This leaves me to believe that there’s either a bug in the iOS simulator (for iPhone 6 only), or a bug with how the launch image is selected altogether which might even be present when running on an actual device.

I’ve made each launch image simply by setting different background colors to determine which one is displayed.

I’ve also confirmed that the image for the Retina HD 4.7 is present in the Info.plist file generated by Xcode, and the file is in the root of the bundle but it still doesn’t display for the iPhone 6. As mentioned above iPhone 6+ works properly.

OK, I’ve confirmed a bug.

If the app is a landscape only app, the HD Retina 4.7 launch image will not display. If the app is a portrait app it’s OK.

Now the big question is: Is this an iOS simulator bug only, or does it behave the same on an actual device as well?

I’m filing a bug report with Apple.

EDIT:

Launch images do show up if a “Launch Screen File” is used instead of an asset catalog. However that’s only available in iOS8 which still leaves an issue using asset catalogs when run on earlier iOS versions…

Actually I don’t know that it will be an issue.  For iOS 7 and earlier, just provide the Default-*.png files.  The iPhone 6 family will never no iOS 7 and earlier, so we don’t need to worry about those devices on older OS’s.

Rob

It’s only an issue if you want to use asset catalogs for launch images as you can’t mix both as I understand it.

Otherwise the good ol’ Default-*png files will due. I still have to confirm the filenames to be used for iPhone 6/6+ though. My working theory is Default-667h@2x for iPhone 6 and Default-736h@3x for iPhone 6+.

I was hoping to use asset catalogs for launch images, but it doesn’t seem likely at the moment. I’ve reported the bug to Apple with a test project (in Swift… yay!). 

For anyone interested: Apple radar bug number 18351823.

Hey Rob, can I suggest that, when the engineers have this all figured out, you use a Tuesday Tutorial to give us a rundown on how to make our apps iOS 8 and iPhone 6/6+ ready? Possibly an update to the ultimate config file (If it’s even needed?) for the new iPhone 6+

I haven’t found any “magic” file names (a la Default-568h@2x.png for iPhone 5) that activates “full-resolution” mode for the iPhone 6/6+.

Using asset catalogs should work for static launch screens, but there are bugs in its implementation that prevent the launch screen from showing in certain circumstances, making it an unreliable approach.

My current strategy is to use the old “Default*.png” files for backwards compatibility with iOS 6 / 7, and then use a new feature in Xcode 6 / iOS 8 which is called Launch Screen File. A Launch Screen File allows you to define one file for all launch screens. No need to have several static images anymore. And best of all, images can be in vector format!

Of course this requires that the device has iOS 8, but it’s a huge step forward. Unfortunately vector images are only available for the launch screens at the moment, but I hope that the same will apply to app icons in the future.

As for the config.lua I recommend using the modernized version as described here:

http://coronalabs.com/blog/2013/09/10/modernizing-the-config-lua/

Has anyone in Apple or Google ever heard of SVGs ? or Image scaling ?

I use SVGs as well, I’ve a lua script that leverages inkscape to generate icons and the start display image in the thirteen trillion sizes they demand (and which removes them so they don’t clutter up the root directory). 

If it carries on like this the size of the app icons/images will be larger than the executable code :frowning:

…Has anyone in Apple or Google ever heard of SVGs…

Exactly!