'Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format' - iphone

I submitted an app update, but I have received an email telling me this error has occurred:
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format
How can I fix this problem?
Here are the current icon requirements from Apple.
I could not see 120x120 appearing anywhere? Is this iOS 7 specific? Should I include an icon named Icon-120.png or something?
Update: I added three icons to the resource folder (Icon-120.png : 120x120, Icon-76.png: 76x76 & Icon-152.png: 152x152), but it did not add them to the info.plist. The same warning email was received. I decided to not change anything and wait to see what would happen next.
To my utter amazement, the app went into the review stage 20 hours later and was released on the market the very next day! Kind of makes me wonder how many Apple/Windows app review people lurk around here.

If you get an icon error when submitting an application from Xcode9, or if you cannot see app icon on your simulator as well as a device, just update your cocoapods to the latest version in your project. That issue is a bug in Xcode9 with cocoapods.
There's a new guideline for iPhoneX that can be seen here.
Here's a helpful website that creates an icon for iOS, Mac App and Android app.
You just need to drag and drop your 1024 x 1024 icon and the site will create all the icon sizes and send it to your email. Then follow the following method to set icons for iOS app.
After Apple launched iOS 8, iPhone 6 and 6 Plus, the app icon sizes and launch image sizes changed. Please visit my post for new sizes:
Image resolution for new iPhone 6 and 6+, #3x support added?
Yes, you need to add a 120x120 high resolution icon. Now, if you want to target only iOS 7, you just need 76 x 76, 120 x 120 and 152 x 152 icon sizes. If you also want to target iOS 6, you’ll need 57 x 57, 72 x 72, 76 x 76, 114 x 114, 120 x 120, 144 x 144 and 152 x 152 icon sizes. Without counting Spotlight and Settings icon if you don’t want the OS to interpolate them!
As per the blog post New Metrics for iOS 7 App Icons.
UPDATE:
As per Apple Guideline App-icon OR Icon and Image Sizes:
Icon dimensions (iOS 7 and later)
Icon dimensions (iOS 6.1 and earlier)
Create different sizes of the app icon for different devices. If you’re creating a universal app, you need to supply app icons in all four sizes.
For iPhone and iPod touch, both of these sizes are required:
120 x 120 pixels
60 x 60 pixels (standard resolution)
For iPad, both of these sizes are required:
152 x 152
76 x 76 pixels (standard resolution)
Now set this into Project:
Create a new icon with 120 pixels with high-resolution and 60 pixels as regular as above that the Apple documentation mentions and set the name. For example, icon-120.png and icon-152.png.
Put this icons into your project Resource folder and add this icon into the project:
After this, click on ProjectName-Info.plist and find the icon files row. If you can't find it, then add it by clicking the (+) sign and select icon files and then set all icon images like below.
Now archive and distribute your project as we did for submission of the app binary into the App Store. I hope now you can submit your app without any icon issue.
NOTE:
Be careful to provide all the icons you need. Otherwise your app will not pass Apple validation. If you’ve received this kind of email:
Invalid Image - For iOS applications, icons included in the binary submission must be in the PNG format.
- If your application supports the iPhone device family, you must include square icons of the following dimensions: 57x57 pixels and 120x120 pixels.
- If your application supports the iPad device family, you must include square icons of the following dimensions: 72x72 pixels, 76x76 pixels and 152x152 pixels
Apple is now accepting applications that work on iOS 7 as well, so whatever the Deployment target 6.1 or earlier, but you also need to provide the iOS 7 icon sizes as I mention above (that the store is expecting).
Xcode 5 app icon Manage
If you are using xCode5 The first thing to update is the icons. Xcode 5 introduces Asset Catalogs to simply managing multiple copies of an image (such as for multiple resolutions). We’ll create one to manage both the Game’s icons, along with the Launch Images.
Now, click the Use Asset Catalog button. When confirming the migration, you’re also asked if you wish to migrate the Launch Images (which is iOS talk for the splash screen that appears when starting your app) - you’ll want to ensure this is checked as well.
Please take a Look for more Info Apple doc of Asset Catalogs

The accepted answer is great, but here's the short answer:
<key>CFBundleIconFiles</key>
<array>
<string>icon#2x.png</string>
<string>icon.png</string>
<string>Icon-Small.png</string>
<string>Icon-Small#2x.png</string>
<string>Default.png</string>
<string>Default#2x.png</string>
<string>icon-72.png</string>
<string>icon-72#2x.png</string>
<string>Icon-Small-50.png</string>
<string>Icon-Small-50#2x.png</string>
<string>Default-Landscape.png</string>
<string>Default-Landscape#2x.png</string>
<string>Default-Portrait.png</string>
<string>Default-Portrait#2x.png</string>
New icons below here
<string>icon-40.png</string>
<string>icon-40#2x.png</string>
<string>icon-60.png</string>
<string>icon-60#2x.png</string>
<string>icon-76.png</string>
<string>icon-76#2x.png</string>
</array>
Found this here by searching for "The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format." in Google.

You don't have to do it this complicated way. If you are using XCode 5 (which I am sure most of us are) then create your icons call them whatever you like i.e.
myIcon-58.png
myIcon-57.png
myIcon-72.png
myIcon-80.png
myIcon-100.png
....
And drag and drop them on to the correct boxes under AppIcon. See screenshots. You don't have to manually edit plist file.

One easy way if you have App icon of size 1024 X 1024. just upload it on below site, It will generate icon folder Add AppIcon.appiconset in to your application.
Step 1:
Upload your existing 1024 X 1024 icon on Below Site :
https://makeappicon.com/
Step 2 :
It will send you mail.
Download icon.zip from email.
Step 3 : Drag and Drop AppIcon.appiconset to your application. It will contain all require icon.
It may help you all.
Edit : I am not owner/ promoter of this site. It will save our time.

I want to add another pitfall. Even if you did everything right, you may get trapped by this error if you support more than one target in your build process.
The image asset catalog is part of a target and even if you selected it in Xcode5 to be used for your target, it does not mean it is automatically added.
As a result, the build works like a charm, but the asset catalog is not added to the IPA and the AppStore validation fails with the Error, that the icons are missing.
To fix or check that the assets are part of the target, select the assets-entry in the Xcode project and make sure your target is checked in the inspector.

In my case it was linked with CocoaPods. I've spent a bunch of time to find what was the reason, cause everything seemed correct. I found it over here https://github.com/CocoaPods/CocoaPods/issues/7003. I just moved the "[CP] Copy Pods Resources" and "[CP] Embed Pods Frameworks" above "Copy Bundle Resources" in the Build Phases and the error dissapeared.

I faced the same issue while submitting the app using Xcode 4.6. It does not recognise the icons with dimension 120x120, 58x58, 29x29, etc. So when I tried to add these icons into the info.plist and submit the app for review, Xcode 4.6 did not allow me to do so. On submitting the app without the above icons, I got a mail saying -
"Your delivery was successful, but you may wish to correct the following issues in your next delivery:
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format."
Since, it was recommended and not necessary, I submitted the app anyhow. I added the above recommended icons to the bundle but did not specify them in the Info.plist. I got the same mail again. This time I ignored it and to my surprise the app was accepted.
I wanted my app to run on iOS 5 and above and therefore, I had to use Xcode 4.6 and not the latest Xcode 5 which properly allows only apps for iOS7 and above only.
UPDATE:
NOTE: "Starting February 1st 2014 new apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK".
https://developer.apple.com/news/?id=12172013a#top
Thus, this scenario will be invalid in future.

This should be called a warning, not an error. At least the email says that the icon file is "recommended" and not "required". You can safely ignore this warning if you target iOS 6. Of course, for iOS 7 you would need the new dimensions and also look out for the new rounding of the icon's corners

For any Xamarin.iOS or Xamarin.Forms developers, additionally you will want to check the .csproj file (for the iOS project) and ensure that it contains references to the PNG's and not just the Asset Catalog i.e.
<ItemGroup>
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Contents.json" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-40.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-40%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-40%403x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-60%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-60%403x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-72.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-72%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-76.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-76%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-83.5%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-Small-50.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-Small-50%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-Small.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-Small%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon-Small%403x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\Icon%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\NotificationIcon%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\NotificationIcon%403x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\NotificationIcon~ipad.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcon.appiconset\NotificationIcon~ipad%402x.png" />
</ItemGroup>

In my case i simply removed CFBundleIcons~ipad key from the info.plist file which was blocking the use of AppIcon set for iPad.
The target of my project was iPhone and IOS 8. XCode version was 6.3. Setting CFBundleIcons~ipad probably come from an early version of XCode.

Just had same problem. Using Xcode 8.3.3 and wanted to use AppIcon in Assests catalogue. Tried all sorts of Stack Overflow answers without success.
Finally learned about a deep clean step from Ken/Apple Forum:
removed all icon files, whether from resources (delete - trash) or
appicon file (select - remove selected items); removed even assets
folder
deep cleaned (Use the Product menu w/option key pressed, then
choose to 'clean build folder')
added a new asset catalogue and called it "Assets" right clicked in Assets folder and added new app icon set - changed that one in inspector to be for iOS >=7 triple
checked all my icon files OUTSIDE of Xcode (all were already png
files of right resolution, but some had still colour profile attached
from photoshop elements or did have indexed colour instead of RGB
profile. so I made sure I only save a png file without colour profile
and from a background layer) - not sure that was necessary
archived the build from Product menu
validated and uploaded the build from Window - Organizer

In my case, my App icon files were not in the camel case notation. For example:
My Filename: Appicon57x57
Should be: AppIcon57x57 (note the capital 'i' here)
So, in my case the solution was this:
Remove all the icon files from the Asset Catalog.
Rename the file as mentioned above.
Add the renamed files back to the Asset Catalog again.
This should fix the problem.

Adding another "Same symptoms, but different solution" response, just in case somebody is having the same problem, but none of the common solutions are working.
In my case, I had an app that started development prior to the instruction of asset catalogs and the flexibility in icon naming conventions, but was first submitted to the store after the transition. To resolve the issue I had to:
Delete all the "icon related" lines from the Info.plist
Switch back to "Don't use asset catalogs" for both AppIcons and LaunchImages
Switch back to asset catalogs for AppIcons and LaunchImages
Re-drag&drop the image files into the appropriate locations.

I created my AppIcon catalog manually and had all the correct icons in it, but my project was not using it as the icon catalog. On the project's General tab (where you can set the project name and version number), there was an entry for App Icons Source, but no way to select the catalog I created. I had to click the button to create a new catalog, then delete that new catalog, and then the button changed to a menu where I could select the existing catalog.

For generating icons for your Xcode projects, I'd suggest you consider using SquareIcon. I believe that it makes creating app icon sets for Apple platforms very easy. Just to let you know, this is my own app.
You can drop in a generic image file of your icon (like a PNG or JPG) and generate a .appiconset file which you can put in your Xcode project's asset catalog. This removes the requirement of manually resizing a bunch of images.

I got this error when I was using the app icon image which was resized to 120x120 from 180x180 sized icon using the preview app on MAC. The error is gone When I removed the 120x120 icon from the project. Resizing icons can mess-up with the format required by Apple.

Related

AppStoreConnect: App logo gets black/grey border

When I upload my Catalyst app to AppStoreConnect it gets an additional black/grey border, which is also shown in AppStore after app acceptance, s. screenshot. The logo does NOT have this border.
The corresponding iOS App logo is OK. So I don't think the assets are corrupted.
Does anybody know how to avoid this ? It is annoying...
Solution
The problem was that my asset catalog did only contain an icon named "App Store" with 1024x1024px. In earlier versions of Xcode/ASC this was sufficient.
Some time ago they changed the behaviour and you need also to provide icons named "Mac" in different resolutions. If this is missing, ASC adds this border (for whatever reason).
Since my asset catalog was created years ago it did not contain the lately required new resolutions and that was the problem.

Icon file names iOS 7

How do I have to name the Icon files for Xcode 5?
It gives always errors that de app is not on the top level, it is really frustrating.
Can someone give me the filenames that you have to use for every resolution?
icon file name and size for ios 7 compatible app as below (iPhone)
Icon.png - 57*57
Icon#2x.png - 114*114
Icon-Small.png - 29*29
Icon-Small#2x.png - 58*58
Icon-40.png - 40*40
Icon-40#2x.png - 80*80
Icon-60#2x.png - 120*120
Icon-76.png - 76 x 76
Icon-76#2x.png 152 x 152
(EDIT: corrected names of 120 & 40 sizes, and added 76 + 152)
Asset Catalog is the best thing for setting application icons... It removes the need to follow naming conventions when you are adding or updating your app icons...
You can use this for setting splash screens & application icons..
In Xcode 5 you can find this options..
1- In the project navigator, select your target.
2- Select the General pane, and scroll to the App Icons section.
It really doesn't matter how you name them. If you're using the new catalog feature, you can just drag the icons into each slot.
I've named them in different ways and it hasn't mattered. Ex. app_icon_72.png, app_icon_144.png or app_icon72#2x.png.
Please refer this url, you will get good idea about application icons naming convention
http://developer.apple.com/library/ios/#qa/qa1686/_index.html
I have collected all required sizes for iOS 9+
Application Icon for iTunes, iPhone and iPad
for three types : App, Spotlight and Settings
including Retina and non retina screens needs Icons in following different sizes (in pixels).
29x29
58x58
40x40
50x50
58x58
76x76
80x80
87x87
120x120
152x152
167x167
180x180
512x512
1024x1024
Even Xcode guide us for this
Also you can check apple's Icon and Image Sizes guidelines
For naming convention
iOS 5 no longer requires specific file names for various icon files. HOWEVER - If you include spaces in the icon file names (or probably any other illegal non-alphanumeric character) the icon files won't work.
If you are not using Image catalog in Xcode-5 & still you are getting the error "app is not on the top level", then you are just messed with the location of your icon files. You should keep your icons files in your project folder in the same location where your PROJECT.xcodeProj file resides.
As #JackD said specific name doesn't matter's any more for ios icon. All you need is perfect size.
I have created this application which will provide you all the icons based on information provided here. Get the application from here, and follow the instructions in readme file to create all the required icons for iOS application.
This link has all the required filenames and resolutions: https://developer.apple.com/library/ios/qa/qa1686/_index.html
But noticed that under the section: "Icons for Universal Apps", the filename for both 58x58 and 87x87 are the same Icon-Small#2x.png. Anyone knows what should be the proper names for these 2 resolutions?
1) 58x58
Icon-Small#2x.png
Settings on devices with retina display
Recommended if you have a Settings bundle, optional otherwise
2) 87x87
Icon-Small#2x.png
Settings on iPhone 6 Plus
Recommended if you have a Settings bundle, optional otherwise

XCode won't accept my 57x57 size icon?

I'm trying to archive my app with XCode. I have 4 different icons (57, 72, 114, 144).
It works fine when I drop them in but when I try to validate it after building I get the following...
If I go back and try to replace the 57px icon with a 72px icon I get this message.
Why is this happening?
Here is the values in plist, haven't done anything here manually.
Here is the apple doc for icons
In case the above link gets expired I'm including the screen shot, I know it's the content are impossible to see, here is the image link. Btw you can always right click on the image and copy image location and open it in new tab.
Here is how you can specify icons
In theory you can name them whatever you want for iPad as long as they are in the info.plist. In order to support older version of iOS, I always name them the way apple recommand, which has already been quoted by Inder Kumar Rathore.
Take a look at here to see how to Add Icon files in Info.plist
#PhlipK: Your info.plist looks very different from mine, here is how mine looks like.
Take a look at the link I mentioned above and try to edit your info.plist see if that works.

How to change app icon within In-App Purchase?

Is it possible even to change from demo icon to full version image after purchasing full version via InApp Purchase? Or should I make two versions with lite/full icons ?
Please refer to
https://stackoverflow.com/a/45602449/195186
This was true before iOS 10.3 only:
No. This is not possible. The icon is fixed.
UIApplication has a new instance method that will do what you want. The Apple docs spell out exactly what you need to do to accomplish this: https://developer.apple.com/documentation/uikit/uiapplication/2806818-setalternateiconname
This is not possible, since iOS apps run in a sandbox and can therefore not write (while they can read) the app's bundle, where the icon is located.
1) In info.plist set up key Icon file with value ../Documents/icon.png.
2) Add key Icon already includes gloss effects with value YES
3) In first launch move picture to /Documents/icon.png
After second launch Icon app will be changed!
If you change icon.png in Documents folder need to make respiring for refresh Icon app.

Is it possible to change the app icon programmatically?

I want to make two different app icons, and programmatically switch betweem then. When the user quits the app without finishing an workflow-process, then I want to switch to an icon that will indicate that there's something undone when launching the app. Well, just theoretically, just for testing.
I think that the icon file is just a normal file as any other, so if I would just rename it programmatically and then give another icon file the name of the icon file that's named the Info.plist, then the app should show up with another icon, right? Would that be possible? Or do I have no access to that file for renaming it?
icon file stored in "application bundle" folder.
And your application has read-only rights to this folder
There is no oficial way to change/rename thees files.
You can add integer badge to youy icon
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:666]
But it is not official method.
It sounds like a good idea, and I would definitely give it a try, but I get the feeling this isn't possible.
I believe the app icons get stored in another file structure global to the iPhone. I say this because after I installed 3.0 beta 5, I saw a bug where the app icon disappeared from an app I developed. Then after installing two new apps from the app store, the new app's icon appeared on my app, and the 2nd new app's icon appeared on both new apps. Essentially the new app icons shifted to fill in for the missing app icon.
Removing and re-adding the apps, then rebooting the phone, restored the icons properly.
I don't know for a fact how the app icons are managed and stored on the phone, of course, but it would fit to say they are stored in some sort of cached list that gets rebuilt occasionally, perhaps after a reboot. That would mean even if you could change the icon from within your app, it would take more effort to see the effects on the phone.