Did the icon names/size requirements change for iOS?

Not too long ago I remember reading a tutorial that the following names/sizes were required for iOS:

“Icon.png”,
“Icon@2x.png”,
“Icon-60.png”,
“Icon-60@2x.png”,
“Icon-60@3x.png”,
“Icon-72.png”,
“Icon-72@2x.png”,
“Icon-76.png”,
“Icon-76@2x.png”,
“Icon-Small-40.png”,
“Icon-Small-40@2x.png”,
“Icon-Small-40@3x.png”,
“Icon-Small-50.png”,
“Icon-Small-50@2x.png”,
“Icon-Small.png”,
“Icon-Small@2x.png”,
“Icon-Small@3x.png”

Plus icons for itunes artwork etc.

Now the  Corona Building and distribution guide only mentions these sizes/names:

Icon-40.png 40 × 40

Icon-58.png 58 × 58

Icon-76.png 76 × 76

Icon-80.png 80 × 80

Icon-87.png 87 × 87

Icon-120.png 120 × 120

Icon-152.png 152 × 152

Icon-167.png 167 × 167

Icon-180.png180 × 180

Has something changed? I need to redo my icons and I don’t know which sizes to follow.

There is a bunch of history to explain here, but first…

Your existing Icons and code in build.settings will still work. You do not have to make any changes.

Now for the history. In the beginning Apple just looked for Icon.png. You didn’t need anything more. When the Retina phones came out, you needed two icons: Icon.png and Icon@2x.png. Again Apple just found these. As the iPad came out, then the Retina iPad, the increase in icons required a different strategy. Then iOS 7 came and the sizes of the icons change. The iPhone 6/7 and 6/7 plus changed the sizes again.

Some where in there, Apple allowed the file names to be anything you liked, but you had to list the names in the info.plist (i.e. from our build.settings).  All of these changes are tied to iOS versions. As long as we support older versions of iOS we have to recommend your icons work for all versions.

Since iOS 6 still had some dependency on files being named a certain way, we were forced to recommend the naming scheme we had even though with later versions of iOS the name wasn’t relevant.  Sometime between the previous public build and the current public build we dropped support for iOS 6 and 7. Now that iOS 8 is the minimum, we are no longer constrained by icons that have specific names and we were able to eliminate all the icons tied to iOS 6 and earlier in size.

The result is you need fewer icons. The naming scheme is flexible and we feel that Icon-xxx.png is much easier to use and for those making tools to auto-create them, it will be easier to script.

If you’re using a version of Corona SDK (latest daily build or later), there isn’t much of a reason to maintain the old icon scheme. iOS 10 did not bring any new icons.

Now for UILaunchImages, dropping iOS 6 and 7 allows us to now use the Xcode “Storyboard” method of doing launch images. Apple didn’t support this until iOS 8. When I say “Storyboard”, I’m not referring to our old scene manager, but Xcode’s way of designing screens. The huge UILaunchImage table in build.settings can be replaced with a single line. The bazillion Default*****.png files are replaced by three images and an extra file produced by Xcode.

See: https://docs.coronalabs.com/guide/distribution/launchFile/index.html

With iOS 8 we can do a serious cleanup on the folder holding main.lua.

Rob

Thank you Rob for the thorough answer. So if I understand correctly, since Corona no longer supports iOS 6 and 7, all those extra icon files are no longer required. That’s good to know. What about the images that are supposed to be labeled iTunesArtwork – are those still necessary?

My understanding is that iTunesArtwork was a file specifically for AdHoc installs. Apple has a way for businesses to internally deploy apps and the iTunesArtwork is needed for that system. I don’t believe they have every been required for submission to iTunes Connect.

Rob

There is a bunch of history to explain here, but first…

Your existing Icons and code in build.settings will still work. You do not have to make any changes.

Now for the history. In the beginning Apple just looked for Icon.png. You didn’t need anything more. When the Retina phones came out, you needed two icons: Icon.png and Icon@2x.png. Again Apple just found these. As the iPad came out, then the Retina iPad, the increase in icons required a different strategy. Then iOS 7 came and the sizes of the icons change. The iPhone 6/7 and 6/7 plus changed the sizes again.

Some where in there, Apple allowed the file names to be anything you liked, but you had to list the names in the info.plist (i.e. from our build.settings).  All of these changes are tied to iOS versions. As long as we support older versions of iOS we have to recommend your icons work for all versions.

Since iOS 6 still had some dependency on files being named a certain way, we were forced to recommend the naming scheme we had even though with later versions of iOS the name wasn’t relevant.  Sometime between the previous public build and the current public build we dropped support for iOS 6 and 7. Now that iOS 8 is the minimum, we are no longer constrained by icons that have specific names and we were able to eliminate all the icons tied to iOS 6 and earlier in size.

The result is you need fewer icons. The naming scheme is flexible and we feel that Icon-xxx.png is much easier to use and for those making tools to auto-create them, it will be easier to script.

If you’re using a version of Corona SDK (latest daily build or later), there isn’t much of a reason to maintain the old icon scheme. iOS 10 did not bring any new icons.

Now for UILaunchImages, dropping iOS 6 and 7 allows us to now use the Xcode “Storyboard” method of doing launch images. Apple didn’t support this until iOS 8. When I say “Storyboard”, I’m not referring to our old scene manager, but Xcode’s way of designing screens. The huge UILaunchImage table in build.settings can be replaced with a single line. The bazillion Default*****.png files are replaced by three images and an extra file produced by Xcode.

See: https://docs.coronalabs.com/guide/distribution/launchFile/index.html

With iOS 8 we can do a serious cleanup on the folder holding main.lua.

Rob

Thank you Rob for the thorough answer. So if I understand correctly, since Corona no longer supports iOS 6 and 7, all those extra icon files are no longer required. That’s good to know. What about the images that are supposed to be labeled iTunesArtwork – are those still necessary?

My understanding is that iTunesArtwork was a file specifically for AdHoc installs. Apple has a way for businesses to internally deploy apps and the iTunesArtwork is needed for that system. I don’t believe they have every been required for submission to iTunes Connect.

Rob