New app icons for iOS7

Some new app icons will be needed for iOS7 compatibility.

Specifically the new ones are:

App Icons:

60x60       iPhone Non-Retina

120x120   iPhone Retina

76x76       iPad Non-Retina

152x152   iPad Retina

Spotlight:

80x80      iPhone Retina

40x40      iPad Non-Retina

80x80      iPad Retina

Settings:

58x58     iPhone Retina

29x29     iPad Non-Retina

58x58     iPad Retina

See full list in attachment.

The filenames can be whatever you want as long as you list them in CFBundleIconFiles.

I’ve adopted a standard where the size of the icon is embedded in the filename as seen in the attachment below.

An example build.settings file would look like this:

(You don’t need to specify the @2x versions in CFBundleIconFiles as long as you omit the .png from the base name. The system will automatically choose the correct icon)

(Note: The file below is intended for Xcode 5, and will give a warning about icons when compiling with Xcode 4.6. We’ll have to wait for official support for iOS7 before we start distributing apps for it to the Apple App Store.)

settings = { orientation = { default = "portrait", supported = {"portrait", "portraitUpsideDown"} }, iphone = { plist = { CFBundleIdentifier = "com.company.appid", UIPrerenderedIcon = true, UIApplicationExitsOnSuspend = false, CFBundleIconFiles = { "Icon57", "Icon60", "Icon72", "Icon76", "Icon29", "Icon40", "Icon50" } } } }

Thank you, Ingemar.  Very helpful.

Naomi

Ingemar, it looks like Corona SDK throws out error if we don’t include Icon.png.

Naomi

@naomi
Ooops. That’s what I I get for not testing with Corona before posting.
I’m currently working on a few Xcode projects, and it works there without it.

I’m away from my computer right now, but I’ll test once I get back. 

I’m at my computer again, and I’ve tested the above without getting an error in Corona (build 2013.1202).

I was able to successfully run an iOS app in the Corona Simulator, and build for device without problems.

(I did see in the build log that there is one place in the Corona build script where it tries to rename icon.png->Icon.png which obviously fails, but it doesn’t affect the resulting build. I checked the Info.plist in the app bundle and it’s 100% OK.)

I would still include Icon.png at 57x57 as a safety measure.  In fact to keep from having a full renaming attack, here is the scheme I would use:

Icon-Small.png    29x29

Icon-Small@2x.png  58x58

Icon-Small-50.png  50x50

Icon-Small-50@2x.png 100x100

Icon.png   57x57

Icon@2x.png 114x114

Icon-72.png   72x72

Icon-144.png  144x144

No differences there, just add:

Icon-60.png   60x60

Icon-60@2x.png  120x120

Icon-76.png   76x76

Icon-76@2x.png  152x152

And it should take care of you.

For what it’s worth, as Ingemar said, Apple doesn’t look at the file name, it looks for an Icon of the right size.  It basically loops through that array and says “Is this my 76x76 icon?” until it finds it or it throws an error.

Thanks, guys.  I was using daily build 1202 with release distribution certificate when the Corona spat out the error at the end of the build process.  So, immediately after, I duplicated some of the icon files to include standard naming, and it built without the error.

I like the naming convention that indicates the size of the icon, so below is what I ended up doing.

What I did was rather cumbersome, but at least I know what size is for what, plus the duplicate safety icons to ensure Corona will build the release app for me.  Maybe all I needed was Icon.png for safety measure, but I decided to keep them all.

Naomi

“Icon-512.png”,        – 512x512

“Icon-57.png”,         – App Icon iPhone Non-Retina (iOS 6.1 and prior)

“Icon-114.png”,       – App Icon iPhone Retina (iOS 6.1 and prior)

“Icon-72.png”,        – App Icon iPad Non-Retina (iOS 6.1 and prior)

“Icon-144.png”,      – App Icon iPad Retina (iOS 6.1 and prior)

“Icon-40.png”,        – Spotlight iPad Retina (iOS 6.1 and prior)

“Icon-50.png”,        – Spotlight iPad Non-Retina (iOS 6.1 and prior)

“Icon-100.png”,      – Spotlight iPad Retina (iOS 6.1 and prior)

“Icon-60.png”,       – App Icon iPhone Non-Retina [edited]

“Icon-76.png”,       – App Icon iPad Non-Retina

“Icon-120.png”,      – App Icon iPhone Retina

“Icon-152.png”,      – App Icon iPad Retina

“Icon-80.png”,        – Spotlight iPhone & iPad Retina

“Icon-29.png”,       – Settings iPhone & iPad Non-Retina

“Icon-58.png”,       – Settings iPhone Retina & iPad Retina (iOS 6.1 and prior)

                

“Icon.png”,                    – 57x57

“Icon@2x.png”,             – 114x114

“Icon-iPad.png”,            – 72x72

“Icon-iPad@2x.png”,      – 144x144

“Icon-Small-50.png”,      – 50x50

“Icon-Small-50@2x.png”,  – 100x100

“Icon-Small.png”,              – 29x29

“Icon-Small@2x.png”        – 58x58

Weird.

I have no problem at all with a release build and the build.settings file as in my first post.

OK, now I was able to get the error as well.

I have been working with Xcode 5 recently and the Xcode path had been set to point to the Xcode 5 binaries. After setting it back to Xcode 4.6 I got an error during validation, which is understandable since Xcode 4.6 doesn’t know anything about the iOS7 guidelines.

This means that the build.settings file I posted at the top will only work properly with Xcode 5.

Ah, great to know.  Thank you so much for tracking this down, Ingemar.  It sounds like I can remove these additional files as soon as I update mine to Xcode 5.

Thanks again!

Naomi

Appearently a 60x60 icon is also required by Apple.

See screenshot (https://developer.apple.com/library/prerelease/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html)

Ah, you’re right, Ingemar.  Dunno why I missed that.  Ugh.

Naomi

Hi guys, Pardon the stupid question but can I assume the new icons will be required only if Apple release ios7 to the masses? Or more simply, can I just send an app update with the old icons size? Thanks! Mo Ps: thank you guys for all these great info. It is hard to keep track of all that stuff. Why Apple did not just ask for one graphic 256x256 and then deal with all these icons sizes behind the scene is behond me! I am sure a A4 processor can deal with resizing icons :slight_smile:

Considering that the official release is on the 18th, I think that all apps that are released from now on will require the new icons. App approval takes about a week which would put a review on the other side of the 18th…

Existing apps will work just fine.  However building with XCode 5 is probably going to enforce the 60x60 requirement and Apple will likely reject apps that come in at some point without it.  Clearly if you build for the iOS 7 SDK, you are going to have to provide the new Icons.  Hopefully it will be smart enough to look at the build target(6.1, 7.0) and decide what Icon’s it needs.  I’ve not tried to do a device build recently.  I need to get the latest daily so I can build against the 7.0GM and see.

We have already updated the build.settings guide to cover what we are officially recommending for a naming scheme.  Apple gives developers some wiggle room and there may be a Corona requirement to actually have the Icon.png at 57x57.  You can see that now at:

http://docs.coronalabs.com/guide/distribution/buildSettings/index.html

We are contemplating a blog post to cover this and so some other iOS 7ism’s. 

One of the reasons we are going with the names we have, is  most developers will only need to add icons, not change/rename any existing ones.  It’s also very explicit and the less flexibility, the less room for error for many of our less experienced developers.

I had a app update approved yesterday built with the latest public release and didn’t change any icons etc…

I haven’t installed xCode 5 or messed with iOS7.

Dave

@Dave

That sound good. I have a couple of apps that have been waiting for approval for 5 days and I didn’t add any iOS7 stuff.

I assume they’ll pop into “In Review” on Monday or Tuesday and hopefully they won’t complain about missing iOS7 icons etc.

@Rob

I can understand that recommendations are in place, but I hope it stops there.

IMO CoronaLabs should not start to “police” icon file names that Apple don’t enforce and which they dropped way back in iOS 3.2 when they introduced the CFBundleIconFiles key.

I don’t think we have any intention of policing anything beyond the boundaries of whats required for our product to work.

@Rob

OK. Great  :) Sorry for any misunderstandings…

The reason I got a little concerned was when I read:

It’s also very explicit and the less flexibility, the less room for error for many of our less experienced developers.