Xcode9 iOS11应用程序发行版中缺少CFBundleIconName


90

我正在努力使用使用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键设置为项目名称或图像文件名,然后再次提交了该应用程序。但是,我仍然收到与上述相同的电子邮件。

任何帮助的建议将不胜感激。


2
您是否已App Icons Source在项目常规设置中正确设置资产目录?
vmeyer

1
@vmeyer:但是不使用资产目录的应用程序呢?
user102008年

Answers:


75

我整夜都在为此苦苦挣扎,一直到深夜尝试着我能想到的每个排列,终于找到了解决方案-希望这可以使某人免于经历这场噩梦。

我的应用程序以前未使用xcassets目录,因此在尝试通过使用文件-新建-文件...并从文件类型中选择资产目录来解决此问题时,我已在项目中添加了一个-我将其命名为Assets.xcassets并在xcode项目中选择了它。然后右键单击右侧区域,然后选择添加“应用程序图标和启动图像”,然后选择“新建iOS应用程序图标”,然后我将我的1024x1024图像拖到应用商店iOS 1024pt插槽的孔中,您认为该插槽会起作用。但是在归档并提交给商店后,我仍然收到被拒绝的电子邮件。

缺少Info.plist值-捆绑包中缺少Info.plist键CFBundleIconName的值。bla bla bla ...

我还将密钥添加到Info.plist中的“图标名称”(CFBundleIconName也知道)并将其设置为与项目中我的1024x1024图像匹配的字符串文件名。但是,即使检查IPA内容是否正确显示所有内容,这些方法都无效。

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

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

通过单击转到资产目录-再次是Assets.xcassets,然后单击AppIcon部分,然后将您的1024x1024图像拖到App Store iOS 1024pt井孔中。上次将您的应用程序存档并提交到应用程序商店-希望到那时我再也不会收到来自地狱的电子邮件,因为我开始打电话给他们拒绝您的应用程序,您可以返回iTunesConnect提交您的应用程序。

祝您好运-当您尝试了很多没有成功的合理修复程序时,您可能会为这个主要是隐秘的错误而感到痛苦。有时候这就是软件工程师的生活...;)

如果容易的话,每个人都会这样做,对。;)


确实,这是一种痛苦,我非常冷静地阅读了链接后才想到了。实际上,您不需要删除以前的应用程序图标,但是如果您将iPad,iPhone复选框切换到左侧,则会获得所有必需的尺寸。
ErAcube

1
谢谢!很长时间为此苦苦挣扎!我只是喜欢Apple的错误如何如此具有启发性。
talsharonts

对我来说,关键是从“常规”项目选项卡中添加AppIcon资产。(Bizarrely,创建新资产目录然后添加应用程序图标无效。)
Jason Moore

1
这次真是万分感谢。尽管在上传到App Store时获得了成功,但没有任何东西可以上传到iTunes Connect。非常混乱。通常,如果在上传到商店时立即留下类似的东西,就会出错。
uplearnedu.com 18-3-8

2
我为iOS开发的越多,我就越讨厌它。
mike

59

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

Info.plist:

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

在此处输入图片说明

在此处输入图片说明

在此处下载工作应用程序资产


2
这对我有用。非常感谢!顺便说一句,这也适用于Mac的VS
acido

1
父标签会很好。现在我不得不猜测钥匙在哪里。
马丁

34

我发现,由于Xcode 9 iOS 11的构建要求iTunes Connect App Icon必须与二进制文件本身捆绑在一起,而二进制文件本身可以直接在早期版本的Xcode(XCode 8.3.3 ane以前)中直接添加到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
  • 40点1x,2x,3x
  • 60pt 1x,2x,3x
  • 76pt 1x,2x
  • 83.5pt 2倍
  • 1024点1x

因此,现在该使用资产目录指定应用程序图标了。


1
就我而言(使用Xamarin / Visual Studio for Mac构建的旧应用),该解决方案就像“ 迁移到资产目录”一样容易。我还有一个启动屏幕作为故事板,我无法将其迁移到资产目录,因此我将其保留原样。它仍然抱怨营销图标丢失。
firepol

我认为您需要在“ App Icon”(也是1024pt)下添加“ Marketing Icon”。还要验证是否使用Xcode 9 GM(而不是Beta版)上传二进制文件。
ErAcube

1
Visual Studio Form MacXamarin Studio之前的版本)未在资产中显示应用程序商店/营销图标,因此我无法通过UI添加它。我将向Xamarin提交错误。我做了什么:编辑Contents.json>为添加文件名ios-marketing。我还必须ImageAsset在csproj文件中添加文件。同样由于某种原因,我的iTunesArtwork 2x不正确(与1x相同)。我用1024px文件覆盖了它。生成的IPA不包含icon-marketing.png,但是通过应用程序加载程序进行的上传有效。仔细检查:再次尝试,没有营销图标,但itunesartwork修复:出现营销错误。
firepol

1
适用于Mac用户的xamarin / visual studio错误报告如下:bugzilla.xamarin.com/show_bug.cgi?
id=59515

15

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

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


2
这对我来说是固定的!尝试其他所有方法均无济于事。这也很有意义,因为我检查了使用即兴构建导出的.ipa软件包时,发现在资产编译器更改为为“资产目录应用程序图标集名称”指定了“ AppIcon”(匹配)之前,图标不在其中xcassets中的名称。
GameSalutes 18-3-23的

11

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

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

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


8

现在在IOS 11中,我们需要在尺寸为1024x1024的项目中添加一个新图标。

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

Info.plist:

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

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


8

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

这是逐步指南。

第1步:

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

第2步:

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

在此处输入图片说明

第三步:

它将要求您输入您的电子邮件地址。输入它,然后几秒钟后,您将把所有需要的图像大小都放入邮箱。下载该压缩文件夹并解压缩。

第4步:

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

在此处输入图片说明

步骤5:

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

在此处输入图片说明

你已准备好出发!...


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

很棒的帖子,对我
有用

4

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

该应用程序未使用资产目录。尽管这不是该错误的说明,但这是解决此问题所必需的,但是如何添加值很重要。手动将缺少的key \ value添加到.plist是不够的;不仅如此。您还需要从.plist中删除CFBundleIcons值。可以手动完成此操作,但我建议使用XCode界面通过“项目属性-常规应用程序图标和启动图像”进行编辑。那就是我的工作方式。

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

更新的.PList

应用程序图标和启动图像

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

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

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

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

您现在应该可以存档您的应用程序并将其提交到应用程序商店。


4

对于以上答案无济于事的任何人(为此花了很多钱):

确保检查资产目录的目标成员身份!如果您在此处未正确链接成员身份,则会收到此相同的超类错误(Apple应该对错误消息进行某些处理)。

在此处输入图片说明

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

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

希望这对击中目标的人有所帮助!


1
我的天啊。在HOURS努力解决此问题之后,出于某种原因,只是检查目标成员身份而未选中。非常感谢。
GGirotto

3

请按照以下步骤操作。

  1. 在您的项目中添加新文件>> Asset Catlog。
  2. 转到单击XCODE >> General >> App Icons中的项目。见截图。这将在您的资产内自动创建AppICon和LaunchImage规范,之后您可以将Appstore图标和其他图标拖放到其中。

  3. 还添加。
    <key>CFBundleIconName</key>
    <string>AppIcon</string>

此条目在您的plist文件中。

将您的二进制文件上传到Itunes。


(Xcode 9,描述的“常规”部分仅针对目标而非项目出现...)
benc

2

我终于想出了一个解决此问题的干净方法,该方法不需要在info.plist中添加任何键,例如CFBundleIconName。我在更新应用商店中的旧应用以针对SDK 11.2进行构建时做到了这一点(并且相信我会遇到很多挫败感)。我在PC上的Visual Studio中使用Xamarin,但此解决方案应在其他任何IDE或框架(例如XCode)中运行。解决方案的要点是,就应用程序图标和启动图像而言,info.plist文件和Resources文件夹不再需要扮演任何角色。实际上,您可以从info.plist文件中删除CFBundleIconFiles项,这对您的项目没有任何影响。

这是您需要遵循的步骤:

  1. 复制您的应用程序图标并启动图像,并将其存储在单独的位置。
  2. 为了干净起见,请删除对应用程序图标的引用,然后从info.plist中启动图像,这意味着删除CFBundleIconFiles键下的值。
  3. 删除应用程序图标并从资源文件夹启动图像。
  4. 使用删除选项可删除您在“资产目录”下声明的所有“资产”或“媒体”。
  5. 名称为Assets.xcassets或Media.xcassets的文件夹(或类似的.xcassets文件夹)可能仍存在于您的项目中。它们将位于“资源”文件夹的外部或内部。删除所有.xcassets文件夹。
  6. 现在,在记事本之类的编辑器(即Visual Studio中的.csproj)中打开项目文件,查看是否有指向.xcassets文件夹中文件的引用。删除所有此类引用。另外,请检查该文件中“资源”文件夹下是否没有指向应用程序图标或启动图像的引用,并将其删除。
  7. 检查以确保XSAppIconAssets和XSLaunchImageAssets项不再存在于info.plist中。如果它们仍然存在,请删除它们。
  8. 此时,您已经删除了所有以前的文件或对应用程序图标的引用,并从项目中启动了图像。如果它们仍然存在,请返回并删除它们。现在重新开始,在“资产目录”下创建一个新的“资产”或“媒体”,这将在项目中创建一个.xcassets文件夹。将步骤1中的应用程序图标(如果需要,启动图像)复制到新.xcassets文件夹下的相应文件夹中。确保包括所有必需的图像。
  9. 检查以确保info.plist现在包含您创建的新“资产”的XSAppIconAssets(如果需要,还包含XSLaunchImageAssets)键值。您的项目文件(在Visual Studio中为.csproj)现在应包含对添加到新“资产”中的每个图像的引用。除了项目所需的图像外,不需要任何其他图像。我建议您从资产中删除所有多余的图像。
  10. 如果您添加了其他解决方案中提到的名为CFBundleIconName的密钥,请从info.plist中删除该密钥。不需要。现在您可以将应用程序提交到商店了。

1

无需编辑info.plist。通过在images.xcassets中填充AppIcon的所有图像占位符,可以解决与图标相关的错误。


1

Visual Studio 17(v-15.2)更新版本> 15.2时出现问题,您会在AssetCatalog> Media> AppIcons中看到一个App-Icon-1024x1024占位符

在此处输入图片说明


你能给点背景吗?不确定为什么Visual Studio版本与此主题相关...
benc


1

以我的情况;在完成此页中的所有这些操作之后,请不要忘记再次存档您的项目:)


0

对于适用于iOS 11应用程序的Xcode 9.2,应明确几点。

1-此错误应该是由于资产目录中没有图标资产。

(通过提交没有资产目录的应用程序来解决此错误)。

2-通过添加带有所需图标的资产目录来解决此错误。

(就我而言,这是一个仅限iPhone的应用程序,我添加了一些120x和180x的占位符图像)。

3-此错误与1024x1024“应用商店图标”无关

(当您忘记了较大的商店图标时,将显示一个单独的特定错误,而不是此错误)。

4-与Apple文档相反,即使使用(为iOS 11编写的Xcode 9 +),您也可以使用该网站提交App Store图标。

(上面提到的单独的特定错误是由缺少图标而不是提交的构建中没有图标触发的)。

5- Info.plist中丢失的CFBundleIconName不变。


缺少和缺乏之间有什么区别?你可以解释吗?
dFlat

如果您已经向商店条目提交了图标,则提交构建中不包含图标的应用程序将起作用...
benc

0

在这件事上,我还有很多问题-我经常因为缺少CFBundleIconName和找不到图标的错误而报错。所以这是我的故事,也许对某人会有帮助。顺便说一句,我在Xamarin中使用Visual Studio。

  1. 使用AppIcons将资产目录添加到您的项目中(资产的实际名称并不重要,只是用于应用程序图标)。添加所有必要的图标大小。对于“ App Store”图标,我已经添加了一个图标,其名称不带@,这是论坛中建议的某人的名字,但我不确定是否100%必要。为了生成不同的图标大小,有很多网站和工具可以为您做到这一点,您只需要提供1024x1024即可。他们将产生其余的。

  2. 在Info.plist的“ Visual Assets”下,然后在“ App Icons”下,将源设置为刚创建的资产。

  3. 现在检查您的Info.plist。不要使用外部编辑器打开它,因为一旦您构建项目,所有更改将被覆盖。执行以下操作-右键单击解决方案资源管理器中的Info.plist,然后选择Open With-> Generic PList Editor。

  4. 检查您是否具有以下条目:

    -属性= CFBundleIconName,类型=字符串。值= Assets.xcassets / AppIcons.appiconset-属性= XSAppIconAssets,类型=字符串。值= Assets.xcassets / AppIcons.appiconset

  5. 请注意,Visual Studio在总共添加某些内容时会自动添加“ Resources / Assets.xcassets / AppIcons.appiconset”作为值。但是在我的情况下,资产目录是在Resources文件夹之外创建的,因此,我的图标未找到。因此,检查资产文件夹的创建位置。

  6. 不需要CFBundleIconFiles,因为Apple现在改为使用资产目录。

我希望我能有所帮助:)


0

我使用了@Omair的答案,它是正确的,但是,然后我遇到了找不到各种图标的错误。问题是创建资产目录时VS2017的错误。添加新资产目录时,目录文件夹是在项目的根目录下创建的,而不是在/ resources下。但是,info.plist中的条目的路径位于/ resources下。一旦我从资产目录的路径中删除了/ resources,一切就正常了。希望这对某人有帮助!


0

我将在Xamarin的范围内答复以解决此问题-与Xcode相似但不相同。将VisualStudio社区(16.6 Windows / 8.6.1 macOS)与安装在macOS上的Xcode 11一起使用

在Info.plist中添加CFBundleIconName无济于事,该密钥如今已不再使用(对于定位iOS 11及更高版本的版本,仅使用Assets.xcassets-也可以是Media.xcassets,您可以选择所需的任何内容,但是我将其称为Assets.xcassets)。

我的问题是:尽管在Assets.xcassets视图中看起来不错,但图像不正确。当我尝试手动重新影响它们时,我遇到了格式错误。

Xamarin正在处理,好...让我们将Asset.xcassets混淆到.csproj文件中。有时仅引用Contents.json文件不足以描述所有资产,您也必须导入每个文件,因此它可以在PC上运行,但不能在Mac上运行,反之亦然。在Visual Studio PC,Visual Studio Mac和Xcode之间有改进资产管理的空间。

我重新生成了所有图标,并手动将其一个一个插入到Assets.xcassets视图中。

当然,此外,Info.plist还必须具有以下密钥:

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

然后,我重建了所有内容,一切正常。

提示,查看在上载到AppStoreConnect之前图标是否正确生成的技巧是部署到模拟器,或者在Xcode-> Organizer工具中检查IPA是否获得了正确的图标。否则,这是开发人员的“无图标”,不会正常。

此外,一些用于生成应用程序图标的网站未包含我需要的所有内容。最后,我使用此工具进行了快速测试(但我更喜欢使用本地工具-参见上文):https : //www.iconsgenerator.com/Home/AppIcons

另外,由于没有Launchimage(与情节提要相关,并且还存储在Asset.xcassets中),您可能会遇到上传问题,因此有一个很棒的应用程序可以同时生成应用程序图标和启动图像:https : //github.com/raphaelhanneken/iconizer


0

就我而言,问题是我有一个App Store Marketing Icon(1024x)的PNG图片,

您必须为此应用商店图标(1024x)使用jpeg(非透明图像),问题不再存在。


0

以上对我没有任何帮助。我需要Development Assets从“构建设置”中删除的值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.