关于’CFBundleIconName’ is missing问题的解决办法 – CSDN博客

来源: 关于’CFBundleIconName’ is missing问题的解决办法 – CSDN博客

博主一直在用cocos creator进行游戏开发,最近xcode升级到了最新的9.2版本,打算对最新的游戏进行提审,从打包到上传包的过程中,都没有问题,但是,当上传成功后,不一会儿就收到了苹果的错误提示邮件,邮件内容如下:

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 ‘你的应用的bundle ID’. 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 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

仔细阅读上面的信息,你会发现,问题出在一个叫做CFBundleIconName的字段,就是说,需要在Info.plist文件中,添加一个该字段,添加完成后,默认显示的名字是Icon Name,该字段是一个String的字段,value值为空。如下图所示:

这里写图片描述

我这里设置了一个value值为AppIcon,这个后面慢慢会说到。
下面说这个AppIcon的问题,注意,是i的大写,不是L的小写。这个表示的是应用的图标。从苹果发回来的邮件可以看得出来,大概是从iOS11以后,应用的图标就要配置在这个AppIcon里面,而这个是什么呢?做iOS开发的可能更加了解一些,就是Assets.xcassets下面的那个AppIcon,如图所示:
这里写图片描述
但是对于一个cocos导出的项目,是没有这个东西的,所以,这里重新常见一个iOS的demo项目,如图所示:
这里写图片描述
然后,右键点击Assets.xcassets,show in finder,在文件夹中打开,然后,复制到自己的项目目录下,
这里写图片描述

完成后,将该目录拖到项目中去,类似如下效果:

这里写图片描述
然后,点击Assets.xcassets,在点击AppIcon,也就是之前上面的那个AppIcon的效果,剩下的,就是设置资源了。这里提供一个连接如下:

https://www.appicon.build/

进入这个链接,然后上传一张1024×1024的图片,会生成AppIcon所需要的图片,然后输入邮箱,图片资源会以压缩包的形式发送到你的邮箱里,然后下载下来,将整个AppIcon.appiconset目录,复制到项目里面即可,如图所示:
这里写图片描述

然后点击Assets.xcassets,再点击AppIcon,将图片依次拖拽到右边对应的位置即可。然后,配置项目的Build Settings下面的Asset Catalog App Icon Set Name,将这里填写成AppIcon,然后修改info.plist文件的Icon name,将里面天上AppIcon即可。

这里写图片描述

这时,就可以打包了。打包过程是没问题的,但是上传包的时候,会报错,报错信息如下:

这里写图片描述

这个时候千万不要慌,仔细阅读提示信息。读一下会发现,问题出在版本兼容问题上,当iOS版本小于7.0的时候,iphone/ipod需要的Icon尺寸为57×57,ipad需要的尺寸是72×72,也就是说,我们之前配置的AppIcon中,缺少这两个尺寸,那么怎么添加这两个尺寸呢?还是右键点击Assets.xcassets,然后在finder中打开,如图所示:

这里写图片描述

然后打开Assets.xcassets/AppIcon.appiconset/里面的Content.json文件,然后,添加如下内容:


    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "Icon-57.png",
      "scale" : "1x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "Icon-72.png",
      "scale" : "1x"
    },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

那个fileName是你的对应的图片的名字,如果这里写错了,也没关系,写好后,保存,打开xcode,点击AppIcon,这里会多出几个Icon的尺寸,这就需要重新配置几张图片了,然后,将新切好的图片,和之前的图片放在一起,将AppIcon缺少的部分拖拽一下就好了。刚刚虽然是添加了2项,但是,系统会默认多添加好几个,所以,这部分是不需要担心的。

下面进行一些其他的说明:
1.关于那个Assets.xcassets。刚开始的时候。楼主不是很了解这个东西,所以就从一个iOS项目中直接复制进来了,其实这个东西是可以直接创建的。创建过程如下:
这里写图片描述
然后,点击创建:这里写图片描述
创建成功后,然后,创建AppIcon:
这里写图片描述
我是用的之前的那种方式copy过来的,这种方式有个问题,就是不同的设备,会有自己单独的AppIcon的配置,iPhone,Apple Watch ,iPad是分开的,除非直接改那个Content.json文件。

其次,对该博客的参考资料进行一下相应的说明,该博客最开始参考的博客内容是cocos论坛中的一篇帖子,
Xcode9打包上传失败?CFBundleIconName is missing?

该博客引用了Stack Overflow中的一篇帖子进行讲解,链接如下:

Missing CFBundleIconName in Xcode9 iOS11 app release

其中,也包括那个生成iOS的AppIcon的方法的链接,都是引用Stack Overflow的内容。然后,博主在打包上传包的时候,由于最低兼容版本是iOS6.0,所以报错了,提示57×57和72×72的那几个问题,该问题参考了如下内容:

Application Loader提交ipa文件出现ERROR ITMS-90022问题解决方案

尊重各位博主的成果,这里将参考内容全部贴出来,供大家参考。

分享到:更多 ()