在Xcode9 iOS11应用程序版本中缺少CFBundleIconName

ErA*_*ube 75 xcode itunesconnect ios ios11 xcode9

我正在努力使用使用iOS 11 SDK构建的Xcode 9发布我们的应用程序的新版本.存档和上传二进制文件顺利进行,没有任何问题.构建在"活动"下的iTunes Connect中显示为"正在处理",它将消失,我收到以下电子邮件.

亲爱的开发者,

我们发现您最近交付的一个或多个问题"".要处理您的交付,必须更正以下问题:缺少Info.plist值 - 捆绑包中缺少Info.plist密钥CFBundleIconName的值.在资产目录中提供图标的应用程序还必须提供此Info.plist密钥.有关详细信息,请参阅 http://help.apple.com/xcode/mac/current/#/dev10510b1f7.一旦纠正了这些问题,您就可以重新更新已更正的二进制文件.此致,App Store团队

该链接提供了有关资产包的一些信息.我尝试将CFBundleIconName键设置为项目名称或图像文件名,然后再次提交应用程序.但是,我仍然收到与上面相同的电子邮件.

任何建议的帮助将受到高度赞赏.

Ric*_*att 64

我整天都在苦苦挣扎,一直到深夜尝试我能想到的每一个排列,并最终找到了这个解决方案 - 希望这可以帮助一些人避免经历这场噩梦.

我的应用程序以前没有使用过xcassets目录,所以我在尝试通过使用File - New - File ...并从文件类型中选择资产目录来解决此问题时添加了一个 - 我将其命名为Assets.xcassets并在xcode项目中选择它.然后右键单击右侧区域,然后选择添加应用程序图标和启动图像,然后选择新的iOS应用程序图标,然后我将我的1024x1024图像拖到应用程序商店iOS 1024pt插槽的井中,您认为这样就可以了.但在归档并提交到商店后,我仍然拒绝接收电子邮件.

缺少Info.plist值 - 捆绑包中缺少Info.plist密钥CFBundleIconName的值.bla bla bla ...

我也有添加了关键的Info.plist的"图标名称",这也被称为CFBundleIconName并将其设置为一个字符串的文件名,在项目符合我的1024×1024的图像.但即使检查IPA内容显示一切正确到位,这些都没有奏效.

最后,我从名为Assets.xcassets的目录中删除了AppIcon,以便它为空并执行以下操作来解决问题:

通过单击应用程序的名称,然后选择然后在应用程序图标在常规选项卡转至该应用的主要设置和启动图像部分点击应用程序图标源旁边的按钮,并选择使用的资产类别 - 选择您的资产目录的名称 - 我的名字叫做Assets.xcassets - 并且说用该弹出窗口上的按钮转换(迁移)应用程序 - 我也检查了该框以转换启动图像 - 当你完成应用程序图标源和启动图像源将有名称在下拉列表中.

转到资产目录通过点击它 - 我的又是Assets.xcassets,然后点击APPICON部分并拖动1024x1024的图像进入App Store的iOS 1024pt以及/插槽.归档您的应用程序的最后一次,并将其提交到应用商店 - 在这一点上,我开始叫他们关于拒绝您的应用程序的希望不会得到了来自地狱的电子邮件,您可以返回到iTunesConnect提交您的应用程序.

祝你好运 - 当你尝试了很多合理的解决方案时,我很同情你可能会感受到的这种大多是神秘的错误.这有时是软件工程师的生活......;)

如果很容易,每个人都会这样做,对吧.;)

  • 我为 iOS 开发的越多,我就越讨厌它。 (4认同)
  • 谢谢!纠结这个好久了!我只是喜欢 Apple 的错误是如此具有启发性。 (2认同)

Gur*_*uru 43

最简单的解决方案是在plist中添加CFBundleIconName键并填充资产目录中的所有AppIcon切片.

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

在此下载工作AppIcons资产

  • 这对我有用.非常感谢!顺便说一句,这也适用于VS for Mac (2认同)
  • 父标签会很好。现在我必须猜测钥匙在哪里。 (2认同)
  • 你也是一个好人,可以分享Assest :-D (2认同)
  • 此解释缺少的部分:在上面的列表中,“图标名称”是“所要求的值的通用名称。如果右键单击“plist”中的任何项目并选择“原始键和值”,您将请参阅此名称更改为“CFBundleIconName”,这是 Apple 在其失败消息中使用的名称。 (2认同)

ErA*_*ube 32

我想通了,因为Xcode 9 iOS 11版本需要将iTunes Connect App Icon与二进制本身捆绑在一起,而二进制本身可以直接在早期版本的Xcode(早期的XCode 8.3.3)中添加到iTunes Connect.

如果您通过App Store分发应用程序,请将App Store图标添加到Xcode项目中的资产目录.图标的位置因平台而异.

对于使用Xcode 8.3.3及更早版本构建的iOS和watchOS应用程序,您可以在iTunes Connect中添加App Store图标.对于macOS和tvOS应用程序,您将App Store图标添加到Xcode项目,但资产目录中的位置与使用Xcode 9及更高版本构建的应用程序不同.

必需的App Store图标应放置在应用程序包中的资产目录中.

添加App Store图标

因此,CFBundleIconName现在应设置为AppIcon(默认值)或您设置的任何值.

仅添加该图像将无法通过iTunes存档上传过程,因此我们需要添加以下尺寸的所有应用程序图标图像:

  • 20pt 1x,2x,3x
  • 29pt 1x,2x,3x
  • 40pt 1x,2x,3x
  • 60pt 1x,2x,3x
  • 76pt 1x,2x
  • 85.5pt 2x
  • 1024pt 1x

所以,现在是时候使用资产目录来指定应用程序图标了.


Gle*_*Ray 13

每当我为我的某个应用程序的新版本提交二进制文件时,我都会收到相同的电子邮件.我尝试了这里列出的所有补救措施,但没有任何效果.然后我做了一个有效的改变.

目标中...构建设置...资产目录编译器 - 选项部分,确保包含图标的资产目录的名称显示在 资产目录应用程序图标集名称中.出于某种原因,我的资产目录应用程序图标集名称为空白.

  • 这对我来说很有用!尝试其他一切无济于事.当我在使用adhoc构建导出时检查.ipa包并且在资产编译器被更改为为"资产目录应用程序图标集名称"指定了"AppIcon"之前看到图标不在那里时,它也是有意义的xcassets中的名称. (2认同)

Neh*_*pin 9

使用iOS 11或更高版本SDK构建的应用必须在资产目录中提供应用图标,并且还必须为此Info.plist密钥提供值

对于没有资产目录的旧项目,在提交到Appstore时会出现问题

在项目 - >目标属性 - 常规选项卡 - >应用程序图标和启动图像.应用程序图标 - >选择使用资产目录然后它将要求转换(迁移)警报并创建.xcassets文件.选中此框以转换启动图像.
完成后,应用程序图标源和启动图像源将在下拉列表中显示名称.添加应用程序图标和其他图标


Neh*_*pin 8

现在在IOS 11中,我们需要在大小为1024x1024的项目中添加一个新图标.

确保从源代码包中的资源文件夹中删除图标文件,并清除info.plist中的图标文件键.还要在plist中添加CFBundleIconName键,如下所示

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>
Run Code Online (Sandbox Code Playgroud)

同样在项目 - 目标 - >构建设置 - >资产目录编译器 - 部分中,确保包含图标的资产目录的名称显示在资产目录应用程序图标集名称中.


cas*_*las 8

我有同样的问题并解决如下.

这是一步一步的指导方针.

步骤1:

创建一个1024*1024.png的图标

第2步:

将此png上传到https://www.appicon.build/网站并在屏幕上拖放.

在此输入图像描述

第3步:

它会要求您输入您的电子邮件地址.输入它,几秒钟后,您将获得所有必需的图像大小到您的邮箱.下载该压缩文件夹并解压缩.

第4步:

返回到您的项目Xcode并将此解压缩文件夹(称为AppIcon.appconset)添加到xcode项目的resources文件夹中.

在此输入图像描述

第5步:

双击Asset.xcassets文件夹,然后将所需图像拖放到图像占位符上,从生成的图像中拖放2x和3x图像.

在此输入图像描述

你已准备好出发!...

  • Mac App Store上还有一个名为Icon Set Creator的应用程序。这项工作是否一样简单,并且不会在网络上上传内容。 (2认同)

小智 7

我也遇到了“缺少 Info.plist 值 - 捆绑包中缺少 Info.plist 键 CFBundleIconName 的值...”错误,并希望留下一个简洁的答案,希望能帮助下一个人。

该应用程序未使用资产目录。虽然这不是此错误所说的,但这是解决此问题所必需的,但如何添加值很重要。手动将这个缺失的键\值添加到 .plist 中是不够的;不仅如此。您还需要从 .plist 中删除 CFBundleIcons 值。这可以手动完成,但我建议使用 XCode 界面通过 Project Properties - General App Icons 和 Launch Image 进行编辑。这就是我如何让我的工作。

下面是对我的.plist所做更改的屏幕截图。

在此处输入图片说明

应用程序图标和启动图像
在此处输入图片说明

如果您还没有一个新的资产目录,请添加到您的项目中。
单击导航器窗口顶部的应用程序名称
选择常规选项卡
向下滚动到“应用程序图标和启动图像”部分
单击“使用资产目录”按钮
注意:我已经创建了自己的资产目录和 iOS 应用程序图标图像设置,但链接到现有图像对我不起作用,因为它创建了一个具有空值\图像的新图像集。我不得不将它们全部删除,让这个过程为我创建它们。如果您刚刚添加资产目录来解决此问题,请让此过程为您创建它,不要手动添加图像集。

单击以转换\迁移应用程序
单击该按钮后,我没有自动刷新任何内容。我导航离开然后回到设置屏幕,现在在下拉列表中分配了值。

现在通过单击打开您的新资产目录 单击
“AppIcon”部分并将所需的图像拖动到适当的位置。

您将需要 1024x1024 图像作为 App Store iOS 1024pt 图标和任何其他 iPhone\iPad\Universal 应用程序所需的图标。1024x1024px 图像也称为营销图标。没有它,您将无法提交您的应用程序。

您现在应该能够归档您的应用程序并将其提交到应用程序商店。


his*_*ag3 5

对于上述答案没有帮助的任何人(在这个问题上花了很多时间):

确保检查资产目录的目标成员资格!如果您没有在此处正确链接成员资格,您将收到同样的超级通用错误(Apple 应该对错误消息做一些处理)。

在此处输入图片说明

目标成员资格应与您使用图标的目标直接相关。例如,我将这个单一目录用于我的主应用程序和观看应用程序资产,您必须通过选择适当的成员来指定这一点。

您根本不需要编辑 plist,这些答案中的大多数都是误导性的。

希望这可以帮助遇到此问题的人!

  • 我的天啊。在 HOURS 为这个问题苦苦挣扎后,只是检查了由于某种原因未检查的目标成员资格。非常感谢。 (2认同)