![](/img/trans.png)
[英]Unable to install app on watchOS simulator Xcode9, iOS11, watchOS4 app crashes
[英]Missing CFBundleIconName in Xcode9 iOS11 app release
我正在努力使用使用 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 键设置为项目名称或图像文件名并再次提交应用程序。 但是,我仍然收到与上述相同的电子邮件。
任何帮助建议将不胜感激。
我整天都在为此苦苦挣扎,直到深夜尝试了我能想到的每一种排列方式,最后找到了这个解决方案——希望这可以让某人免于经历这场噩梦。
我的应用程序以前没有使用 xcassets 目录,因此在尝试通过使用 File - New - File... 并从文件类型中选择资产目录来解决此问题时,我在项目中添加了一个目录 - 我将其命名为 Assets.xcassets并在xcode项目中选择它。 然后右键单击右侧区域并选择添加应用程序图标和启动图像,然后添加新的 iOS 应用程序图标,然后我将我的 1024x1024 图像拖到应用商店 iOS 1024pt 插槽的井中,您认为它会起作用。 但在存档并提交到商店后,我仍然收到拒绝电子邮件。
缺少 Info.plist 值 - 捆绑包中缺少 Info.plist 键 CFBundleIconName 的值。 呜呜呜……
我还在 Info.plist 中添加了“图标名称”的键,CFBundleIconName 也知道它,并将其设置为与项目中我的 1024x1024 图像匹配的字符串文件名。 但是,即使检查 IPA 内容显示一切都正确,但这些都不起作用。
最后,我从名为 Assets.xcassets 的目录中删除了 AppIcon,使其为空,并执行以下操作来解决问题:
通过单击您的应用程序名称,然后选择常规选项卡,然后在应用程序图标和启动图像部分下单击应用程序图标源旁边的按钮并选择使用资产目录,进入应用程序的主要设置 - 选择您的资产目录的名称 -我的被称为 Assets.xcassets - 并说使用该弹出窗口上的按钮转换(迁移)应用程序 - 我还选中了转换启动图像的框 - 完成后,应用程序图标源和启动图像源将具有名称在下拉列表中。
单击它转到资产目录 - 我的再次是 Assets.xcassets,然后单击 AppIcon 部分并将您的 1024x1024 图像拖到 App Store iOS 1024pt 井/槽中。 最后一次存档您的应用程序并将其提交到应用程序商店 - 那时希望不会再收到来自地狱的电子邮件,因为我开始打电话给他们关于您的应用程序被拒绝,您可以返回 iTunesConnect 提交您的应用程序。
祝你好运——当你尝试了很多合理的修复但没有成功时,我很同情你可能会对这个几乎是神秘的错误感到痛苦。 有时这就是软件工程师的生活...... ;)
如果这很容易,每个人都会这样做,对吧。 ;)
最简单的解决方案是在 plist 中添加 CFBundleIconName 键,并在资产目录中填充所有 AppIcon 切片。
信息列表:
<key>CFBundleIconName</key>
<string>AppIcon</string>
我发现,由于 Xcode 9 iOS 11 构建需要将 iTunes Connect 应用程序图标与二进制文件本身捆绑在一起,而二进制文件本身可以在早期版本的 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 图标应放置在位于应用程序包中的资产目录中。
因此,CFBundleIconName 现在应该设置为 AppIcon(默认值)或您设置的任何值。
仅添加该图像不会通过 iTunes 存档上传过程,因此我们需要添加以下大小的所有应用图标图像:
所以,现在是时候使用资产目录来指定应用程序图标了。
每当我为我的一个应用程序的新版本提交二进制文件时,我都会收到相同的电子邮件。 我尝试了这里列出的所有补救措施,但没有任何效果。 然后我又做了一个有效的改变。
在目标中。 . . 构建设置。 . . Asset Catalog Compiler - Options部分,确保包含图标的资产目录的名称显示在Asset Catalog App Icon Set Name中。 出于某种原因,我的资产目录应用程序图标集名称为空白。
使用 iOS 11 或更高版本 SDK 构建的应用程序必须在资产目录中提供应用程序图标,并且还必须为此 Info.plist 键提供值
对于没有资产目录的旧项目,在提交到 Appstore 时会出现问题
在项目 -> 目标属性 - 常规选项卡 -> 应用程序图标和启动图像中。 应用程序图标 —> 选择使用资产目录然后它会要求转换(迁移)并发出警报并创建一个 .xcassets 文件。 选中该框以转换启动图像。
完成后,App Icons Source 和 Launch Images Source 将在下拉列表中有名称。 向其中添加应用程序图标和其他图标
我有同样的问题并解决如下。
这是分步指南。
创建一个 1024*1024.png 的图标
将此 png 上传到https://www.appicon.build/网站并拖放到屏幕上。
它会要求您输入您的电子邮件地址。 输入它,然后几秒钟后,您将获得所有需要的图像尺寸到您的邮箱中。 下载该压缩文件夹并解压缩。
返回到您在Xcode
上的项目并将这个解压缩的文件夹(称为 AppIcon.appconset)添加到您的 xcode 项目的资源文件夹中。
双击Asset.xcassets
文件夹并将所需的图像拖放到图像占位符上,以便从生成的图像中获取 2x 和 3x 图像。
你已准备好出发!...
我也遇到了“缺少 Info.plist 值 - 捆绑中缺少 Info.plist 键 CFBundleIconName 的值...”错误,并想留下一个简洁的答案,希望能帮助下一个人。
该应用程序未使用资产目录。 尽管这不是此错误所说的,但这是解决此问题所必需的,但是如何添加值很重要。 手动将这个缺失的 key\value 添加到 .plist 是不够的; 不仅如此。 您还需要从 .plist 中删除 CFBundleIcons 值。 这可以手动完成,但我建议使用 XCode 界面通过 Project Properties - General App Icons and Launch Image 进行编辑。 这就是我让我的工作的方式。
下面是对我的.plist所做更改的屏幕截图。
如果您还没有新的资产目录,请向您的项目添加一个新的资产目录。
单击导航器窗口顶部的应用程序名称
选择常规选项卡
向下滚动到“应用程序图标和启动图像”部分
单击“使用资产目录”按钮
注意:我创建了自己的资产目录和 iOS 应用程序图标图像集,但链接到现有的对我不起作用,因为它创建了一个具有空值\图像的新图像集。 我不得不将它们全部删除,并让这个过程为我创建它们。 如果您刚刚添加资产目录来解决此问题,请让此过程为您创建它,不要手动添加图像集。
点击转换\迁移应用
单击按钮后,我没有自动刷新任何内容。 我离开然后回到设置屏幕,现在在下拉列表中分配了值。
现在通过单击打开您的新资产目录
单击“AppIcon”部分并将所需的图像拖到适当的位置。
App Store iOS 1024pt 图标和任何其他 iPhone\iPad\Universal 应用程序所需的图标需要 1024x1024 图像。 1024x1024px 图像也称为营销图标。 没有它,您将无法提交您的应用程序。
您现在应该能够归档您的应用并将其提交到应用商店。
现在在 IOS 11 中,我们需要在大小为 1024x1024 的项目中添加一个新图标。
确保从源代码包中的资源文件夹中删除图标文件,并清除 info.plist 中的图标文件键。 还在 plist 中添加 CFBundleIconName 键,如下所示
信息列表:
<key>CFBundleIconName</key>
<string>AppIcon</string>
同样在 Project - Target->Build Settings -> Asset Catalog Compiler - 部分,确保包含图标的资产目录的名称显示在 Asset Catalog App Icon Set Name 中。
请按照以下步骤操作。
转到 XCODE>>General>>App Icons 中单击您的项目。 见截图。 这将在您的资产中自动创建 AppICon 和 LaunchImage 规范,之后您可以在其中拖放您的 Appstore 图标和其他图标。
还添加<key>CFBundleIconName</key>
<string>AppIcon</string><key>CFBundleIconName</key>
。
<string>AppIcon</string>
您的 plist 文件中的此条目。
将您的二进制文件上传到 iTunes。
我终于想出了一个干净的解决方案来解决这个问题,它不需要向 info.plist 添加任何键,例如 CFBundleIconName。 我在更新应用商店中的旧应用以针对 SDK 11.2 构建时这样做(相信我有相当多的挫败感)。 我在 PC 上的 Visual Studio 中使用 Xamarin,但此解决方案应该在任何其他 IDE 或框架(例如 XCode)中工作。 该解决方案的要点是 info.plist 文件和 Resources 文件夹不再需要在应用程序图标和启动图像方面发挥任何作用。 事实上,您可以从 info.plist 文件中删除 CFBundleIconFiles 键,它不会对您的项目产生任何影响。
以下是您需要遵循的步骤:
无需编辑 info.plist。 通过在images.xcassets 中填写 AppIcon 的所有图像占位符,可以解决与图标相关的错误。
每个应用程序开发人员都使用著名的“图标狗”
(很遗憾他们改名了!)
https://itunes.apple.com/us/app/app-icon-set-creator/id1052532083?mt=12
它无疑是 iOS 开发者使用的排名第一的最受欢迎的应用程序,有点像邪教。
它立即解决了所有问题。
在我的情况下; 在此页面中完成所有这些操作后,不要忘记再次归档您的项目 :)
如果有人像我一样出现在这个页面上,因为你无法将应用推送到应用商店——当你这样做时,你会收到一封关于缺少资产目录的电子邮件...... 16.10.0 完全崩溃了。 16.11.0 预览版也没有修复它。 我有一个 Xamarin 项目仍然可以发布,但我怀疑如果我删除了我的 mac 上的构建缓存,它就不会再工作了。 稳定 5 天后,我降级到 16.8.6(可能不需要回到那么远)。 我再次开始收到有关图像的有用警告,我的资产目录不仅生成了一个assets.cer,而且该捆绑包还正确添加了目录。 无论是从 Visual Studio 开始工作还是从 Mono 降级到旧版本,我不知道,但希望这可以节省我为调整 info.plist、catalog.json、.csproj、擦除 mac 端缓存而忍受的浪费时间,检查已发布的文件、1000 个构建/归档/传输,以及重命名和仔细检查数千个图标文件,完全重建项目等。如果您设法获得它们,您可以通过实现 CFBundle 图标文件来解决丢失的资产目录完美,但如果你成功了,你将上传应用程序,它会立即消失,appstore connect 会通过电子邮件告诉你所有应用程序现在都需要资产目录。
对我来说,关键是检查Assets.xcassets
的目标成员资格复选框
对于适用于 iOS 11 应用程序的 Xcode 9.2,有几点需要澄清。
1-此错误应该是由于资产目录中没有图标资产。
(通过提交没有资产目录的应用程序出现此错误)。
2-通过添加带有所需图标的资产目录来解决此错误。
(在我的例子中,它是一个仅限 iPhone 的应用程序,我添加了一些 120 倍和 180 倍的占位符图像)。
3-此错误与 1024x1024 “App Store Icon”无关
(当您忘记较大的商店图标时,将显示一个单独的特定错误,而不是此错误)。
4-与Apple文档相反,即使使用(Xcode 9 +为iOS 11编写),您也可以使用该网站提交App Store图标。
(上面提到的单独的特定错误是由缺少图标触发的,而不是提交的构建中缺少图标)。
5- Info.plist 中缺少的 CFBundleIconName 未更改。
在这件事上我也遇到了很多问题——我经常收到缺少 CFBundleIconName 的错误,而且我的图标在哪里找不到。 所以这是我的故事,也许它会对某人有所帮助。 顺便说一句,我正在使用带有 Xamarin 的 Visual Studio。
使用 AppIcons 将资产目录添加到您的项目(资产的实际名称并不重要,它只是用于应用程序图标)。 添加所有必要的图标大小。 对于“App Store”图标,我添加了一个名称中没有 @ 的图标,正如论坛中有人建议的那样,但我不确定是否 100% 有必要。 为了生成不同的图标大小,有很多网站和工具可以为您做到这一点,您只需要提供 1024x1024 的图标即可。 他们将产生其余的。
在“Visual Assets”下的 Info.plist 中,然后“App Icons”将源设置为您刚刚创建的资产。
现在检查您的 Info.plist。 不要使用外部编辑器打开它,因为一旦您构建项目,您的所有更改都将被覆盖。 执行以下操作 - 右键单击解决方案资源管理器中的 Info.plist,然后选择打开方式 -> 通用 PList 编辑器。
检查您是否有以下条目:
- 属性 = CFBundleIconName,类型 = 字符串。 值 = Assets.xcassets/AppIcons.appiconset -Property = XSAppIconAssets,类型 = 字符串。 值 = Assets.xcassets/AppIcons.appiconset
请注意,当 Visual Studio 完全添加某些内容时,它会自动添加“Resources/Assets.xcassets/AppIcons.appiconset”作为值。 但在我的情况下,资产目录是在资源文件夹之外创建的,因此我的图标在哪里找不到。 因此,请检查您的资产文件夹的创建位置。
不需要 CFBundleIconFiles,因为 Apple 现在使用资产目录。
我希望我能有所帮助:)
我使用了@Omair 的答案,它是正确的,但是,然后我收到了找不到各种图标的错误。 问题是创建资产目录时 VS2017 的错误。 添加新资产目录时,会在项目的根目录下创建目录文件夹,而不是在 /resources 下。 但是,info.plist 中的条目具有 /resources 下的路径。 从资产目录的路径中删除 /resources 后,一切正常。 希望这对某人有帮助!
我将在 Xamarin 的范围内回复以解决此问题 - 这与 Xcode 相似但不相同。 在 macOS 上安装 Xcode 11 使用 VisualStudio Community (16.6 Windows/ 8.6.1 macOS)
在 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:
<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
就我而言,问题是我有一个 App Store Marketing Icon (1024x) 的 PNG 图像,
您必须为此 App Store 图标 (1024x) 使用 jpeg,非透明图像,问题就消失了。
以上没有对我有用。 我需要从 Build Settings 中删除Development Assets
的值。
删除了资产目录下现有的“资产”文件夹
“添加新”是一个空的“资产目录”
info.plist 更新:+1 您的版本并构建#'s 并添加放置在资源中的图标作为“必需?” 由一些早期的 iOS
<dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconName</key> <string>AppIcon</string> <key>CFBundleIconFiles</key> <array> <string>Icon152</string> <string>Icon167</string> <string>Icon76</string> </array> </dict>
苹果回复:
以下构建已完成处理:平台:iOS 应用名称:FltLogger 内部版本号:1.6
下次把这个放在这里,就像帮助我一样。 狩猎愉快...
尝试上传档案时,我遇到了Flutter应用程序的这个问题。
使固定:
<key>CFBundleIconName</key>
<string>AppIcon</string>
Tools > Flutter > Flutter Clean
Tools > Flutter > Open iOS module in Xcode
创建一个新的存档并上传。
就我而言,我尝试了所有方法,唯一有效的是我必须删除整个 xassets 文件夹并创建一个包含图标文件的新文件夹。
如果您仍然面临该问题并且您正在使用 XCode 13,则解决方案可能是删除info.plist键。 我在这里解释更多: https ://stackoverflow.com/a/71016589/15860448
就我而言,我已经做了我应该做的一切。 plist、AppIcon、General 和 Build Settings 中的设置。
真正的问题是 AppStoreConnect 中的应用程序名称与 XCode 中的应用程序名称不同(一个大写字母)。 所以我所做的是创建一个具有正确名称的新项目,只需复制/粘贴所有内容即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.