在Xcode9 iOS11应用程序版本中缺lessCFBundleIconName

我正在努力使用iOS 11 SDK构build的Xcode 9发布我们的应用程序的新版本。 归档和上传二进制文件没有任何问题。 构build出现在iTunes Connect下的“处理”活动中,然后消失,我收到以下电子邮件。

亲爱的开发者

我们已经发现了一个或多个与您近期交付“”的问题。 要处理您的投递,必须纠正以下问题:缺lessInfo.plist值 – 捆绑“”中缺lessInfo.plist键值CFBundleIconName。 在资产目录中提供图标的应用程序还必须提供此Info.plist密钥。 有关更多信息,请参阅http://help.apple.com/xcode/mac/current/#/dev10510b1f7 。 一旦这些问题得到纠正,您可以重新发送更正的二进制文件。 问候,App Store团队

该链接提供了关于资产包的一些信息。 我尝试设置一个CFBundleIconName键项目名称或图像文件名称,并再次提交该应用程序。 不过,我仍然收到与上面相同的电子邮件。

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

我发现,自Xcode 9 iOS 11构build以来,需要将iTunes Connect应用程序图标与二进制文件捆绑在一起,这些二进制文件本来可以直接添加到早期版本的Xcode(以前的XCode 8.3.3)中的iTunes Connect中。

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

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

所需的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

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

我一整天都在努力尝试每一个我能想到的变化,终于find了这个解决scheme – 希望这样可以避免人们经历这个噩梦。

我的应用程序以前没有使用过xcassets目录,所以当我尝试使用File – New – File …并从文件types中select一个资产目录时,我在项目中添加了一个 – 我将其命名为Assets.xcassets并在xcode项目中select它。 然后右键单击右侧的区域,并select添加应用程序图标和启动图像,然后新的iOS应用程序图标,然后在那里我把我的图像拖到iOS应用程序商店iOS 1024插槽,你会认为会工作。 但是在归档并提交给商店之后,我仍然拒绝了电子邮件。

缺lessInfo.plist值 – 该包中缺lessInfo.plist键值CFBundleIconName。 bla bla bla …

我也添加了Info.plist的关键字“图标名称”,这也是CFBundleIconName已知的,并将其设置为与项目中的我的1024×1024图像匹配的string文件名。 但是,即使检查IPA内容显示所有内容都正确,也没有任何效果。

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

点击应用程序名称,然后select“常规”选项卡,然后select“应用程序图标”和“启动图像”部分,点击应用程序图标源旁边的button,然后select使用资产目录 – select资产目录的名称 – 我被称为Assets.xcassets – 并说,转换(迁移)的应用程序与该popupbutton – 我也检查框转换启动图像也 – 当你完成应用程序图标源和启动图像源将具有名称在下拉列表中。

点击它进入资产目录 – 再次是我的Assets.xcassets,然后点击AppIcon部分,并拖动你的图像到App Store iOS 1024pt well / slot。 最后一次归档你的应用程序,并将其提交给应用程序商店 – 在这一点上,希望不会再从地狱里得到电子邮件,因为我开始打电话给他们拒绝你的应用程序,你可以返回iTunesConnect提交你的应用程序。

祝你好运 – 当你尝试了很多合理的修复方法,但是没有彻底改变的时候,我同情你可能会感觉到的这种大部分神秘的错误所带来的痛苦。 有时候这就是软件工程师的生活…;)

如果很容易,大家都会这么做的,对。 ;)

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

Info.plist:

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

在这里输入图像说明

在这里输入图像说明

下载工作AppIcons资产在这里

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

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

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

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

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

Info.plist:

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

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

我也遇到了“缺lessInfo.plist值 – Info.plist关键字CFBundleIconName的值在包中丢失…”的错误,并希望留下一个简洁的答案,希望可以帮助下一个人。

该应用程序没有使用资产目录。 虽然这不是这个错误所说的,但这是解决这个问题所需要的,但是如何添加这些值是非常重要的。 将这个缺less的键值手动添加到.plist是不够的。 除此之外还有更多。 您还需要从.plist中删除CFBundleIcons值。 这可以手动完成,但我build议使用XCode界面通过项目属性 – 常规应用程序图标和启动图像进行编辑。 这就是我的工作方式。

以下是对我的.plist进行的更改的屏幕截图。

更新.PList

应用程序图标和启动图像

如果您还没有资产目录,请将新的资产目录添加到您的项目中。
点击导航窗口顶部的应用名称
selectGENERAL选项卡
向下滚动到“应用程序图标和启动图像”部分
点击“使用资产目录”button
注意:我已经创build了自己的资产目录和iOS App图标图像集,但是链接到现有的图标集并不适合我,因为它创build了具有空值\图像的新图像集。 我不得不删除他们,让这个过程为我创造。 如果您刚刚添加资产目录来解决此问题,请让此过程为您创build,不要手动添加图像集。

点击转换\迁移应用程序
点击button后,没有为我自动刷新。 我导航了,然后回到设置屏幕,现在在下拉列表中分配了值。

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

您将需要为App Store iOS 1024pt图标和任何其他iPhone \ iPad \ Universal应用程序所需的图标的图标。 1024×1024图像也被称为营销图标。 没有它,你不能提交你的应用程序。

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

每当我提交一个新版本的应用程序的二进制文件时,我收到了相同的电子邮件。 我尝试了这里列出的所有补救措施,但没有奏效。 然后,我做了一个更有效的变化。

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

我得到了同样的问题,解决它如下。

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

步骤1:

用1024 * 1024.png创build一个图标

第2步:

将这个PNG上传到https://www.appicon.build/网站并拖放到屏幕上&#x3002;

在这里输入图像说明

第3步:

它会要求你input你的电子邮件地址。 input它,然后几秒钟后,你会得到所有需要的图像大小。 下载该压缩文件夹并解压缩。

步骤4:

回到你在Xcode上的项目,并将这个解压后的文件夹(名为AppIcon.appconset)添加到xcode项目的资源文件夹中。

在这里输入图像说明

第5步:

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

在这里输入图像说明

你已准备好出发!…

按照下面的步骤。 1.在您的项目添加新文件>>资产Catlog。 2.Goto在XCODE中点击您的项目>>常规>>应用程序图标截图这将在您的资产内自动创buildAppICon和LaunchImage规格,然后您可以拖放Appstore图标和其他图标。

3.另外添加CFBundleIconName AppIcon这个项目在你的plist文件中。

上传你的二进制文件到iTunes。

不需要编辑info.plist。 图标相关的错误将通过在images.xcassets中填充AppIcon的所有图像占位符来解决

当Visual Studio 17(v-15.2)更新版本> 15.2时,您会在AssetCatalog> Media> AppIcons中看到App-Icon-1024×1024占位符

在这里输入图像说明