Missing CFBundleIconName in Xcode9 iOS11 app release

Viewed 75639

I'm struggling to release a new version of our app using Xcode 9 built with iOS 11 SDK. Archiving and uploading the binary goes well without any issue. The build appears in iTunes Connect under Activity as 'processing' and it gets disappear and I get the following email back.

Dear developer,

We have discovered one or more issues with your recent delivery for "". To process your delivery, the following issues must be corrected: Missing Info.plist value - A value for the Info.plist key CFBundleIconName is missing in the bundle ''. Apps that provide icons in the asset catalog must also provide this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7. Once these issues have been corrected, you can then redeliver the corrected binary. Regards, The App Store team

The link gives some info about asset bundles. I tried setting a CFBundleIconName key to project name or an image file name and submitted the app again. However, I still get the same email as above.

Any suggestion of help would be highly appreciated.

28 Answers

Simplest solution is to add CFBundleIconName key in plist and fill all AppIcon slices in assets catalog.

Info.plist :

<key>CFBundleIconName</key>
<string>AppIcon</string>

enter image description here

enter image description here

Download Working AppIcons Assets Here

I was getting the same email whenever I submitted a binary for a new version of one of my apps. I tried all the remedies listed here, but nothing worked. Then I made one more change that worked.

In the Target . . . Build Settings . . . Asset Catalog Compiler - Options section, make sure the name of the asset catalog that contains the icons is shown in Asset Catalog App Icon Set Name. For some reason, my Asset Catalog App Icon Set Name was blank.

Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key

For older projects without assets catalog there will be issues while submitting to Appstore

In Project —> Target Properties - General tab—> App Icons and Launch Image. App Icons —> Select Use Asset catalog Then it will ask to convert (migrate) with an alert and creates a .xcassets file. Check the box to convert launch images too.
When you are done the App Icons Source and the Launch Images Source will have names in the dropdown list. Add the app icons and other icons to it

I have got the same issue and solved it as follows.

Here is the step by step guideline.

Step 1:

Create an icon with 1024*1024.png

Step 2:

Upload this png to the https://www.appicon.build/ website and drag and drop on screen.

enter image description here

Step 3:

It will ask you to enter your email address. Enter it and then after few seconds, you will get all the required image sizes into your mailbox. Download that zipped folder and unzipped it.

Step 4:

Go back to your project on Xcode and add this unzipped folder(called AppIcon.appconset) into the resources folder in your xcode project.

enter image description here

Step 5:

Double click on Asset.xcassets folder and drag and drop required images on the image placeholder for 2x and 3x images from the generated images.

enter image description here

You are good to go!...

I too have encountered the "Missing Info.plist value - A value for the Info.plist key CFBundleIconName is missing in the bundle..." error and wanted to leave a concise answer to hopefully help the next person.

The app was not using an asset catalog. Although that is not what this error says, that is what is required to resolve this issue, but how you add the values is important. It is not enough to manually add this missing key\value to the .plist; there is more to it than that. You also need to remove the CFBundleIcons value from your .plist. This can be done manually, but I recommend using the XCode interface to edit this through the Project Properties - General App Icons and Launch Image. That is how I got mine to work.

Below is a screen shot of the changes this made to my .plist.

enter image description here

App Icons and Launch Images
enter image description here

Add a new Asset Catalog to your project if you do not already have one.
Click the app name at the top of your Navigator window
Select the GENERAL tab
Scroll down to the "App Icons and Launch Images" section
Click the "use an asset catalog" button
NOTE: I had created my own asset catalog and iOS App icon image set, but linking to the existing one didn't work for me as it created a new image set which had empty values\images. I had to delete them all and let this process create them for me. If you are just now adding an asset catalog to resolve this issue, let this process create it for you, don't manually add the image set.

Click to convert\migrate the app
After clicking the button, nothing refreshed automatically for me. I navigated away and then back to the settings screen and values were now assigned in the dropdown list.

Now open your new asset catalog by clicking on it
Click on the "AppIcon" section and drag your required images to the appropriate locations.

You will need the 1024x1024 image for the App Store iOS 1024pt icon and any other iPhone\iPad\Universal app required icons. The 1024x1024px image is also known as the Marketing Icon. You cannot submit your app without it.

You should now be able to archive your app and submit it to the app store.

Now in IOS 11, we need to add a new icon in our project of size 1024x1024.

Ensure that the Icon files are removed from resources folder in source code bundle and also Icons files key in info.plist is cleared. Also add CFBundleIconName key in plist as below

Info.plist :

<key>CFBundleIconName</key>
<string>AppIcon</string>

Also in the Project - Target—>Build Settings —> Asset Catalog Compiler - section, make sure the name of the asset catalog that contains the icons is shown in Asset Catalog App Icon Set Name.

Follow the steps below.

  1. In your Project add new file>>Asset Catlog.
  2. Goto Click on your project in XCODE>>General>>App Icons. See screenshot. This will create AppICon and LaunchImage Specifications automatically inside your Asset after that you can drag and drop your Appstore icon and other icons in it.

  3. Also Add
    <key>CFBundleIconName</key>
    <string>AppIcon</string>
    .

This entry in your plist file.

Upload Your Binaries to Itunes.

No need to edit info.plist. The icon related errors would be resolved by filling in all the images placeholders for AppIcon in images.xcassets.

There was an issue with Visual Studio 17(v-15.2) once you update it version > 15.2 you will see an App-Icon-1024x1024 place holder in AssetCatalog > Media> AppIcons

enter image description here

If anyone is, like me on this page amongst many because you cannot get an app pushed to the app store -- and when you do, you get an email about missing asset catalog.... 16.10.0 is completely broken. 16.11.0 preview does not fix it either. I have one Xamarin project still publishable, but I suspect if I deleted the build cache on my mac it wouldn't ever work again. After 5 days solid, I downgraded to 16.8.6 (likely did not need to go that far back). I started getting useful warnings about images again, and my asset catalog not only generates an asssets.cer, but the bundle has the catalog properly added. Whether it started working from visual studio or the mono downgrade to the old version, I do not know, but hopefully this saves someone the wasted days I endured trying to adjust info.plist, catalog.json, .csproj, wiping mac side caches, inspecting published files, 1000's of build/archive/transports, and renaming and double-checking thousands of icon files, completely rebuilding projects, etc.. You can work around the missing asset catalog by implementing the CFBundle icon files if you manage to get them perfect, but if you succeed at that, you will upload the app, it will promptly disappear, and appstore connect will email you that all apps now need asset catalogs.

For me the key was to check the target membership checkbox of Assets.xcassets

I had also a lot of problems on this matter - I was constantly getting the error with the missing CFBundleIconName and that my Icons where not found. So here is my story, maybe it will be of help for somebody. By the way, I am using Visual Studio with Xamarin.

  1. Add an Asset Catalogue to your Project with AppIcons (the actual name of the asset is not important but just that it is for the application icons). Add all of the necessary icon sizes. For the 'App Store' icon I have added an icon without a @ in the name as someone in the forums suggested, but I am not sure, if it is 100% necessary. For generating the different icon sizes there are a lot of Websites and tools that can do that for you and you just need to provide the 1024x1024 one. They will generate the rest.

  2. In the Info.plist under 'Visual Assets' and then 'App Icons' set the source to the asset that you have just created.

  3. Now check your Info.plist. Do not open it with an external Editor, because all of your changes will be overwritten once you build your project. Do the following - right mouse click on the Info.plist in the Solution Explorer then select Open With -> Generic PList Editor.

  4. Check that you have the following entries:

    -Property = CFBundleIconName, Type = String. Value = Assets.xcassets/AppIcons.appiconset -Property = XSAppIconAssets, Type = String. Value = Assets.xcassets/AppIcons.appiconset

  5. Note that Visual Studio automatically adds, when it adds something altogether, 'Resources/Assets.xcassets/AppIcons.appiconset' as the Value. But in my case the Asset Catalog was created outside of the Resources folder and therefore, my icons where not found. So, check where your assets folder was created.

  6. CFBundleIconFiles was not needed, because Apple uses the Asset Catalog instead now.

I hope that I was of some help :)

I used the answer by @Omair and it is spot on, however, I then was getting errors that various icons were not found. The problem was a bug with VS2017 when creating an asset catalog. When adding a new asset catalog, the catalog folder is created under the root of the project, not under /resources. However, the entry in info.plist has the path as under /resources. Once I removed /resources from the path to my asset catalog all worked fine. Hope this helps someone!

I'll reply in the scope of Xamarin for fixing this issue - which is similar but not identical to Xcode. Using VisualStudio Community (16.6 Windows/ 8.6.1 macOS) with Xcode 11 installed on macOS

Adding the CFBundleIconName in the Info.plist is no help, this key is no longer used nowadays (for builds targeting iOS 11 and above, only Assets.xcassets is used - it also can be Media.xcassets, you choose whatever you want, but i'll reference it as Assets.xcassets).

My issue was: although it was visually nice in Assets.xcassets view, the images were not corrects. As soon as i tryed manually to reaffect them i had a format error.

Xamarin is handling, well... let's say confusingly the Asset.xcassets into the .csproj file. Sometimes referencing Contents.json file is not enough to describe all assets, you have to import every single file too, so it can work on PC, but not on Mac and vice-versa. There is space to improve assets management between Visual Studio PC, Visual Studio Mac and Xcode.

I re-generated all icons, and inserted one by one to the Assets.xcassets view by hand.

Of course, in addition, Info.plist, you must have the following key:

<key>XSAppIconAssets</key>
<string>Media.xcassets/AppIcons.appiconset</string>

Then i rebuild all and voilà, it worked.

Tip to see if icons are generated correctly before uploading to AppStoreConnect is to deploy to simulator, or, in Xcode->Organizer tool to check if the IPA got the proper icon. Otherwise this is dev "no icon", and it won't be okay.

Also, some websites for app icon generation are not containing everything i needed. Finally, i used this one for quick tests (but i prefer local tool - see above): https://www.iconsgenerator.com/Home/AppIcons

Also, because you could have issue uploading without Launchimage (related to storyboard, and also stored in Asset.xcassets, there is a wonderful app allowing both generation of App Icons and Launch Images: https://github.com/raphaelhanneken/iconizer

In My case issue was that I had a PNG image for the App Store Marketing Icon (1024x),

You must use jpeg, Non-transparent image for this App Store icon (1024x), and the issue went away.

Nothing above worked for me. I needed to remove the value for Development Assets from Build Settings.

  1. Deleted the existing "Assets" folder under Asset Catalogs

  2. "Add New"'d an empty "Asset Catalog"

  3. followed Managing Icons with Asset Catalogs

  4. info.plist updates: +1 your version and build #'s and add icons placed in Resources as "required?" by some earlier iOS's

    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconName</key>
                <string>AppIcon</string>
            <key>CFBundleIconFiles</key>
        <array>
            <string>Icon152</string>
            <string>Icon167</string>
            <string>Icon76</string>
        </array>
    </dict>
    

To which Apple replied:

The following build has completed processing: Platform: iOS App Name: FltLogger Build Number: 1.6

Putting this here as much for me next time as to help out. Happy hunting...

I had this issue with a Flutter app when trying to upload an archive.

Fix:

  • Add the following to Info.plist
<key>CFBundleIconName</key>
<string>AppIcon</string>
  • Tools > Flutter > Flutter Clean
  • Tools > Flutter > Open iOS module in Xcode

Create a new archive and upload.

In my case I tried everything, the only thing that worked is that i had to delete the whole xassets folder and create a new one with the icon files in it.

In my case I had done everything as I should. The plist, the AppIcon, the settings in General and Build Settings.

What was the issue actually was that the name of the App in AppStoreConnect was different(by one capital letter), than the name of the one in XCode. So what I did was to create a new project with the correct name, just copy/pasted everything and it worked.

Related