Screenshots and new iPhone size compatibility

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!

Does the latest build 2438 support the new iphones? I didn’t see anywhere a post showing what new values to add to the build file to allow it to recognize the added files.

If it doesn’t use the new launch images and icons (either directly or via the new asset list format), than the app will not use the entire screen in the new iPhone.

There’s no official support yet. I’m Enterprise so I can play with native Xcode projects and test stuff.

At the moment if you include the iPhone 5 “tall” launch image, both iPhone 6 and 6+ will use the full screen, but it will scale to fit so you end up with things being a bit fuzzy. 

If you give the guys at CoronaLabs some time they’ll come up with some way to support the new screen sizes.

Lets hope they can come up with a build soon. Apple craze never ends, 8 icons, 5 screenshot versions, 2 movie formats (needless to say incompatible to the standard 720p). 

BTW, how does the SVG work? most of our original assets are SVG or equivalent. it would be great to replace all the various version files with one per asset.  

No SVG support in Xcode yet…

I have 2 SVGs - one for the icon, one for the start-display-screen. I have a lua script which generates all the various sizes, run that, build it, and run it again to get rid of all the pngs. Doesn’t help the clutter of the actual build but stops you having your build directory root cluttered with Apple and Google’s junk. 

@AppOwlDev, there most certainly will be an iOS 8 tutorial once I’ve had a chance to test everything.  I’m fighting with Xcode6 now and since I don’t have access to the new iPhones. 

@rune7, 2438 adds skins for the new devices, so you will have the right screen size.  There was a fix for local notifications.  The next daily build will have a change that supports a new build.settings key when using location services that’s required.

I don’t know if we’ve switched to the production SDK yet or if we are still building with the GM seed (there shouldn’t be much of a difference).   As far as “Do these work with the new devices?”  I can’t answer that yet.  We get ours in the office tomorrow.  It may be a little while longer before I get one to work with.

Rob

Rob M, I have some fellow devs having problems with testing on new iPhones. This is not using Corona though. They had to swap the width and height in the delegate. M file to make it work. Landscape apps were only being displayed in Portrait and cropped. They reckon it might be a bug in Xcode6. I can’t test myself as the last few builds of Corona refuse to build for simulator. So Ive sent an app off for submission with a leap of faith.

People should have the devices in hand by now.  If you can see if this is a problem with someone who got a new phone, let me know.  We’ve not seen this in Corona apps on the beta iOS 8’s.

Rob

Just to clarify, with the current daily build, has anyone found a way yet to make their app support iPhone 6/6 Plus?

Not me, I submitted (yet to be reviewed) but I know I have GameCenter and push notification issues because of iOS8. So I will not be releasing it and have to wait for Corona to fix these issues.

dfoxinator, there is no way to do so with the daily build as it does not support the new forms.

only Enterprise can do it by playing directly with the asset files info using xcode.