22
votes

For some reason, the iPhone 4 refuses to display my high resolution icon file.

I've checked out these solutions, none of which have worked for me:

How to setup normal Icon for iPhone3 and Retina for iPhone 4

http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html

http://appworks.radeeccles.com/programming/cfbundleiconfiles-nice-ready-prime-time/

The icons are in my resources group, and are all named correctly:

I've also tried adding them to the Info.plist file, first as an array, then as a dictionary, then simply deleting all icon references from the plist file, but no matter what I do, it still displays the 57x57 icon scaled up.

Can someone who has a working icon setup please post the actual XML incantation required to make this work?

10
It should.... What is your SDK version ? didn't you forget the I (and wrote [email protected] ?) Did you try a clean / compile ?Vinzius
Tried all of that. No dice. This is on SDK 4.1 with the latest xcode.Karl
I think you should accept the top answer.Jirapong

10 Answers

55
votes

My Solution was simple, but only caught it be painstakingly comparing line-by-line in Apple Docs.

The non-obvious solution that seamed contradictory was "Deleting the Icon file key value". In the previous answer's image, you can see the Icon file still shows "icon.png" and the "Icon files" shows the two: icon.png & [email protected].

I got my app to work by deleting the "Icon file's" key value of "Icon.png" It was the only thing different, in the Apple Docs was the absence of a value for the "Icon file" key. View an image here: link removed...

Updated Link that Shows these Images: https://developer.apple.com/library/content/qa/qa1686/_index.html#//apple_ref/doc/uid/DTS40009882

In addition, I would make sure you are using Apples recommended notation when labeling the photos:

  • 512x512 iTunesArtwork iTunes Image
  • 57x57 Icon.png Home screen for < iPhone 4
  • 114x114 [email protected] Home screen for iPhone 4 High Resolution
  • 72x72 Icon-72.png Home screen for iPad compatibility
  • 29x29 Icon-Small.png Spotlight and Settings
  • 50x50 Icon-Small-50.png Spotlight for iPad compatibility
  • 58x58 [email protected] Spotlight and Settings for iPhone 4 High Resolution

Next Steps...

  1. Clean All targets
  2. Reset Simulator
  3. Relaunch Application
  4. Works fine for iPhone4, reveals large AppIcon = "[email protected]"

Final Steps...

  1. I put the "Icon.png" name back in for the (Icon file) key.
  2. I put this back in to Backwards support iOS 3.0+ so that it still has a value to use.
  3. Clean All Targets again,
  4. Build & Relauch!

This methods seams to clear out any legacy issues and assures that the simulator pulls in the correct files.

Hopes this helps!

P.S. If this helps you solve your problem, be sure to check my comment as the Solution.

17
votes

i had this problem too... this is how I managed to fix it

in your info.plist file you need two entries:

the first one will be "icon file" and this needs to be "Icon.png".

the second entry will be "icon files" and this is an array...

the FIRST ENTRY in the array is your icon file at std def: "Icon.png"

the SECOND ENTRY is the icon file at high def: "[email protected]"

alt text

4
votes

I had a similar problem and tried the "Icon files" array entry in info.plist without success.

What I did to get it to work was delete all "Icon file", and "Icon files" entries in info.plist as well as in the Properties tab in your Project Settings. Then just used the Apple naming conventions for all my files

    * 512x512 iTunesArtwork iTunes Image
    * 57x57 Icon.png Home screen for < iPhone 4
    * 114x114 [email protected] Home screen for iPhone 4 High Resolution
    * 72x72 Icon-72.png Home screen for iPad compatibility
    * 29x29 Icon-Small.png Spotlight and Settings
    * 50x50 Icon-Small-50.png Spotlight for iPad compatibility
    * 58x58 [email protected] Spotlight and Settings for iPhone 4 High Resolution

as posted by Newbyman.

I then did a clean and build. iPhone will properly detect the named icons in the resource bundle and use the appropriate icon. I test on iPhone4 as well as a 1st Gen iPhone running 3.1.3. I am using iOS 4.2 and the latest xcode. Hope this helps someone.

2
votes

All you have to do is add on info.plist "Icon files" (not "Icon file") and change this value type to Array (right click in "Icon Files"). After that add two rows (right click again) and type "icon.png" in the first one and "[email protected]" in the second one.

2
votes

seems ios4 dosent using @2x gramma on this topic.

In you plist file "Icon files"

add files
* icon57.png * icon114.png

this works on my project.

1
votes

I tried Newbyman's solution, but it did not work. The problem seems to come around when you try to add the new icons to an older project and attempt to maintain 3.0 legacy... Somehow you can add the "Icon files" array totally correctly in info.plist and it still will keep the original low res icon on retina display....

My solution was ultimately to remove the info.plist completely and grab a new info.plist from a newer project that was working, and then change out the values for the icon name's and product based information so it matched the old info.plist basically exactly, but some legacy information must go away.. Make sure you check off "add as target" when adding back in the newer info.plist....

0
votes

Well, after much frustration, the only way I was able to get this working was to create a fresh target, and remove all references to icons from the plist file.

0
votes

Sometime it's necessary to remove icons, clean build, add icons back, run on device. It helps me.

0
votes

Ok, I had the issue crop up again.

What was actually happening was that the [email protected] had actually been saved as a jpg file. So xcode would happily include the "png" image but iOS would have nothing of it.

XCode 4 actually checks this and complains, which is nice.

0
votes

I just been having a load of trouble with this myself. I've come to the conclusion that the order of the icons within the array was the problem. I initially had the order as:

Icon.png
Icon-72.png
[email protected]

This wouldn't work. However, when I changed it to this everything worked fine:

Icon.png
[email protected]
Icon-72.png