Announcement

Collapse
No announcement yet.

[UDK-2014-Feb] iPad retina icon (Icon-76@2x) isn't recognized by device [SOLVED]

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [UDK-2014-Feb] iPad retina icon (Icon-76@2x) isn't recognized by device [SOLVED]

    SOLVED by WilliamDocherty here

    To fix icons recognision with names provided by Epics use this:

    Code:
    <key>CFBundleIcons</key>
    <dict>
    	<key>CFBundlePrimaryIcon</key>
    	<dict>
    		<key>CFBundleIconFiles</key>
    		<array>
    			<string>Icon29.png</string>
    			<string>Icon29@2x.png</string>
    			<string>Icon40.png</string>
    			<string>Icon40@2x.png</string>
    			<string>Icon50.png</string>
    			<string>Icon50@2x.png</string>
    			<string>Icon57.png</string>
    			<string>Icon57@2x.png</string>
    			<string>Icon60.png</string>
    			<string>Icon60@2x.png</string>
    			<string>Icon72.png</string>
    			<string>Icon72@2x.png</string>
    			<string>Icon76.png</string>
    			<string>Icon76@2x.png</string>
    		</array>
    	</dict>
    </dict>
    --------

    It was ok with previous UDK version. Once I've updated UDK I've found that I see "iOS6 144x144" size icon on my iPad4 instead of 152x152 "iOS7 size"

    I've checked that .plist overrides are applied in binary, icon is located in binary.

    #2
    Does it work if you call the file "Icon76@2X" ?
    ie: No dash - I think Apple ditched it

    Comment


      #3
      Originally posted by WilliamDocherty View Post
      Does it work if you call the file "Icon76@2X" ?
      ie: No dash - I think Apple ditched it
      No, it doesn't work with any name. I've tested Icon76@2x first, then changed to Icon-76@2x because of https://developer.apple.com/LIBRARY/...86/_index.html .

      Comment


        #4
        Ok, I upgraded to UDK Feb 2014 today & tested out my app icons; I'm getting the following nonsense:

        UPDATED: To show what I think the correct version should be

        Ipad Air (iOS 7) uses: Icon57@2x.png (WRONG - should be: Icon-76@2x.png)
        Ipad Mini Retina (iOS 7) uses: Icon57@2x.png (WRONG - should be: Icon-76@2x.png)

        iPad Mini (iOS 6) uses: Icon40@2x.png (WRONG - should be: Icon-72.png)
        iPad 2 (iOS 6) uses: Icon40@2x.png (WRONG - should be: Icon-72.png)
        iPad3 (iOS 6) uses: Icon57@2x.png (WRONG - should be: Icon-72@2x.png)
        iPad 4 (iOS 6) uses: Icon57@2x.png (WRONG - should be: Icon-72@2x.png)
        iPhone 5 (iOS 6) uses: Icon57@2x.png (CORRECT)


        I've also tried various name changes & adding icon names to UDKGameOverrides.plist

        Code:
        <key>CFBundleIcons</key>
          <dict>
            <key>CFBundlePrimaryIcon</key>
            <dict>
              <key>CFBundleIconFiles</key>
              <array>
                <string>Icon.png</string>
                <string>Icon@2x.png</string>
                <string>Icon29.png</string>
                <string>Icon29@2x.png</string>
                <string>Icon40.png</string>
                <string>Icon40@2x.png</string>
                <string>Icon50.png</string>
                <string>Icon50@2x.png</string>
                <string>Icon57.png</string>
                <string>Icon57@2x.png</string>
                <string>Icon60.png</string>
                <string>Icon60@2x.png</string>
                <string>Icon72.png</string>
                <string>Icon72@2x.png</string>
                <string>Icon76.png</string>
                <string>Icon76@2x.png</string>
                <string>Icon-Small.png</string>
                <string>Icon-Small@2x.png</string>
                <string>Icon-Small-50.png</string>
                <string>Icon-Small-50@2x.png</string>
              </array>
            </dict>
          </dict>

        Anyone know how to get this to work properly?

        Comment


          #5
          Update: I've tried countless combinations of things now based on random web-pages (re-ordering the array by size, removing the .png extension, removing iOS6 filenames, removing iOS6 icon files, putting the array into IPone-info.plist rather than UDKGameOverrides.plist, combinations of different .plist key specifiers, etc, etc) and I can't get the icons to be the correct size at all.

          I'm somewhat confused by how UDK can actually affect this anyway - do the tools "mangle" .plist files in the resource folder during building?
          EDIT: I've had a look at the shipping build IPA's .plist file and it looks to be as expected, ie: nothing obviously wrong with it

          Comment


            #6
            Update: Tried adding this as well, didn't work:

            <key>MinimumOSVersion</key>
            <string>7.0</string>

            Comment


              #7
              SOLVED -

              All you need to do is to add the icons to the UDKGameOverrides.plist as described in my post above.
              The important part is to NOT insert it in the wrong place in the .plist file like an idiot.
              ie: Insert it before the last </dict> tag, NOT after it like I was doing for some reason.

              Oddly the file names were still appearing in the build .plist file - which is why I thought it was working.
              I also don't know exactly why the supplied UDK .plist file doesn't work on iOS7 at least.
              It may have something to do with not using the CFBundleIcons and CFBundlePrimaryIcon keys - but I'm not sure - I just know it doesn't work as is.
              From my understanding, the supplied .plist file also won't support iOS6 properly - as that OS version requires specific naming conventions for the files.
              iOS7 doesn't care what you call these files - it basically checks the resolution of all entries in the file array and picks the correct one.

              Anyway, now I have all devices using the correct icons across all OS revisions

              Comment


                #8
                Here is the final minimal list of icon sizes to support iOS 6 & 7 with a naming convention supported by both.
                It's based on information from here:

                http://aschainfo.wordpress.com/2013/...-in-one-table/

                Code:
                    <key>CFBundleIcons</key>
                    <dict>
                      <key>CFBundlePrimaryIcon</key>
                      <dict>
                        <key>CFBundleIconFiles</key>
                        <array>
                          <string>Icon.png</string>
                          <string>Icon@2x.png</string>
                          <string>Icon-40.png</string>
                          <string>Icon-40@2x.png</string>
                          <string>Icon-60.png</string>
                          <string>Icon-60@2x.png</string>
                          <string>Icon-72.png</string>
                          <string>Icon-72@2x.png</string>
                          <string>Icon-76.png</string>
                          <string>Icon-76@2x.png</string>
                          <string>Icon-Small.png</string>
                          <string>Icon-Small@2x.png</string>
                          <string>Icon-Small-50.png</string>
                          <string>Icon-Small-50@2x.png</string>
                        </array>
                      </dict>
                    </dict>

                Comment


                  #9
                  Big thanks! This nesting doll works!

                  Also, it works with default "Epic's" names of icons.


                  P.S. - added solution to the header message

                  Comment


                    #10
                    No problem, I needed to sort it out for my own app anyway.

                    Have you tested the code fix you posted using Epic's names on an iOS6 device?
                    As I understand it, that will only work for ios7 (NOT iOS6).
                    If you want to support both, the iOS6 names need to use the naming convention, the icons used ONLY by ios7 can be called whatever you want.

                    Comment


                      #11
                      No, all my devices is iOS7 now as I aimed to iOS7 primarily

                      Comment

                      Working...
                      X