Missing CFBundleIconName in Xcode9 iOS11 app release

匿名 (未验证) 提交于 2019-12-03 02:12:02

问题:

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.

回答1:

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. ;)



回答2:

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
  • 85.5pt 2x
  • 1024pt 1x

So, now it is time to use asset catalog to specify app icons.



回答3:

Simplest solution is 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



回答4:

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



回答5:

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.



回答6:

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.



回答7:

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.

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.

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.

You are good to go!...



回答8:

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.

Updated .PList

App Icons and Launch Images

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.



回答9:

Every app developer uses the famous "Icon Dog"

(it's a shame they changed the name!)

https://itunes.apple.com/us/app/app-icon-set-creator/id1052532083?mt=12

It's far and away the #1 most popular app used by iOS devs, kind of a cult.

It immediately solves all problems.



回答10:

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.



回答11:

For anyone who the above answers did not help(spent a good bit of head-wall banging on this one):

Make sure to check the target membership of your assets directory! If you do not correctly link the membership here, you will get this same super-generic error(Apple should do something about the error messages).

The target membership should correlate directly to targets for which you are using the icons. For example, I use this single directory for both my main app, and watch app assets, you must specify this by selecting the appropriate member.

You do not need to edit the plist at all, most of these answers are misleading.

Hope this helps someone who hits this!



回答12:

In my situation; after you have done all these things in this page, don't forget to archive your project again :)



回答13:

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



回答14:

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.



回答15:

I have finally come up with a clean solution to this problem which requires adding no keys to info.plist such as CFBundleIconName. I did this while updating an old app in the app store to build against SDK 11.2 (and believe me there was a fair amount of frustration involved). I'm using Xamarin in Visual Studio on a PC but this solution should work in any other IDE or framework e.g. XCode. The gist of the solution is that info.plist file and Resources folder no longer need to play any role as far as app icons and launch images are concerned. In fact you can remove CFBundleIconFiles key from info.plist file and it will not make any difference to your project.

Here are the steps you need to follow:

  1. Make a copy of your app icons and launch images and store them in a separate location.
  2. For a clean start delete references to app icons and launch images from info.plist, which means deleting values under CFBundleIconFiles key.
  3. Delete app icons and launch images from Resources folder.
  4. Use delete option to delete any 'Assets' or 'Media' you have declared under 'Asset Catalogs'.
  5. A folder by the name of Assets.xcassets or Media.xcassets (or similarly named .xcassets folders) might still be present in your project. They would either be outside or inside the Resources folder. Delete all .xcassets folders.
  6. Now open your project file in an editor like notepad (i.e. .csproj in Visual Studio) and see if there are any references pointing to files in .xcassets folder. Delete all such references. Also check that there are no references pointing to app icons or launch images under Resources folder in this file and delete them as well.
  7. Check to make sure XSAppIconAssets and XSLaunchImageAssets keys are no longer present in info.plist. Delete them if they are still present.
  8. At this point you have removed any previous files or references to your app icons and launch images from your project. If they are still present please go back and delete them. Now to start afresh create a new 'Asset' or 'Media' under 'Asset Catalogs' which creates a .xcassets folder in your project. Copy your app icons (and launch images if required) from step 1 into respective folders under your new .xcassets folder. Make sure all required images are included.
  9. Check to make sure info.plist now contains XSAppIconAssets (and XSLaunchImageAssets if needed) key values for the new 'Asset' you have created. Your project file (which is .csproj in Visual Studio) should now contain references to each image you added to your new 'Asset'. There is no need for any extra images than those required by the project. I would suggest deleting any extra images from your Assets.
  10. If you added a key named CFBundleIconName as mentioned in other solutions then please delete this key from info.plist. It is not required. Now you are ready to submit your app to the store.


回答16:

For Xcode 9.2 for iOS 11 apps, a couple points should be clarified.

1- This error should be from not having icon assets in an Asset Catalog.

(Got this error by submitting an app with no asset catalogs).

2- This error is solved by adding an asset catalog with the required icons.

(In my case, it was an iPhone-only app, and I added some placeholder images that were 120x and 180x).

3- This error is not related to the 1024x1024 "App Store Icon"

(When you forget the larger store icon, a separate, specific error will be displayed, not this error).

4- Contrary to the Apple documentation, even with (Xcode 9 + written for iOS 11), you can also use the website to submit the App Store icon.

(The separate specific error mentioned above is triggered by the lack of an icon, not the absence of the icon in the submitted build).

5- missing CFBundleIconName in Info.plist was not changed.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!