Missing CFBundleIconName in Xcode9 iOS11 app release
I struggled with this all day and into the night trying every permutation I could think of and finally found this solution - hopefully this will save someone from going through this nightmare.
My app was not previously using an xcassets catalog so I had added one to the project when trying to address this issue by using File - New - File... and choosing an asset catalog from the types of files - I named it Assets.xcassets and chose it in the xcode project. Then right clicked in the area on the right and chose to add App Icons & Launch Images then New iOS App Icon and then in that I dragged my 1024x1024 image to the well for app store iOS 1024pt slot which you would think would have worked. but I still got rejected emails after archiving and submitting to the store.
Missing Info.plist value - A value for the Info.plist key CFBundleIconName is missing in the bundle. bla bla bla...
I also had added the key to the Info.plist for "Icon Name" which is also known by CFBundleIconName and set it to a string filename that matched my 1024x1024 image in the project. But none of that worked even though checking the IPA contents showed everything correctly in place.
finally I deleted the AppIcon from my catalog called Assets.xcassets so that it was empty and did the following to fix the issue:
Go to the main setting for the app by clicking your app name and then selecting the GENERAL tab then under App Icons and Launch Images section click the button beside App Icons source and choose to use an asset catalog - select the name of your asset catalog - mine was called Assets.xcassets - and say to convert (migrate) the app with the button on that popup - I also checked 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.
go to the asset catalog by clicking on it - again mine was Assets.xcassets and then click on the AppIcon section and drag your 1024x1024 image into the App Store iOS 1024pt well / slot. archive your app one last time and submit it to the app store - at that point hopefully won't get anymore emails from hell as I started calling them about rejection of your app and you can return to iTunesConnect to submit your app.
Good luck - I empathize with the pain you might be feeling with this mostly cryptic error when you have tried lots of reasonable fixes that just didn't pan out. Such is the life of a software engineer sometimes... ;)
if it was easy everyone would do it, right. ;)
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>
Download Working AppIcons Assets Here
I figured it out that since Xcode 9 iOS 11 builds require iTunes Connect App Icon to be bundled with the binary itself which could have been added to iTunes Connect directly in the earlier versions of Xcode (XCode 8.3.3 ane earlier).
If you distribute your app through the App Store, add the App Store icon to an asset catalog located in the Xcode project. The location of the icon is different depending on the platform.
For iOS and watchOS apps built using Xcode 8.3.3 and earlier, you add the App Store icon in iTunes Connect. For macOS and tvOS apps, you add the App Store icon to the Xcode project but the location in the asset catalog is different than apps built with Xcode 9 and later.
The required App Store icon should be placed in an asset catalog located in the app bundle.
So, the CFBundleIconName should be now set to AppIcon (default value) or any value you set.
Adding only that image will not pass the iTunes Archive upload process so we need to add all the App Icons images of the following sizes:
- 20pt 1x, 2x, 3x
- 29pt 1x, 2x, 3x
- 40pt 1x, 2x, 3x
- 60pt 1x, 2x, 3x
- 76pt 1x, 2x
- 83.5pt 2x
- 1024pt 1x
So, now it is time to use asset catalog to specify app icons.
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.