Info.plist 中 CFBundleDocumentTypes 键的值必须是字典数组

Posted

技术标签:

【中文标题】Info.plist 中 CFBundleDocumentTypes 键的值必须是字典数组【英文标题】:The value of the CFBundleDocumentTypes key in the Info.plist must be an array of dictionaries 【发布时间】:2020-07-05 06:38:51 【问题描述】:

我们在将我们的应用上传到应用商店时遇到以下问题,尽管我们没有在应用中使用 CFBundleDocumentTypes 并且上周成功上传了上一个版本

错误 ITMS-90149:“此捆绑包无效。,每个字典至少包含 CFBundleTypeName 键。”

我们如何解决这个问题?

XCODE 11.3.1

谢谢。

【问题讨论】:

已经做了这一步..但同样的问题 【参考方案1】:

您好,您能否将您的 info.plist 文件作为源打开并检查您的 CFBundleDocumentTypes 密钥是否具有正确的格式,即

<key>CFBundleDocumentTypes</key>
 <array>
    <dict>
    </dict>
 </array>

我猜在您的情况下,您还缺少必须的 CFBundleTypeName 键 即

<key>CFBundleTypeName</key>
<string>Your App</string>

要完整了解代码,请参阅here

【讨论】:

谢谢 .. 但是在 info.plist 中根本不存在密钥我用文本编辑器打开它并搜索它 可能是 entitlement.plist 中的内容吗?我们为未来的开发版本启用了关联域。我试图将它添加到这个版本,也是同样的问题。【参考方案2】:

经过这么多小时的研究终于成功上传到应用商店。

看来苹果在app的提交上有一些变化。

info.plist 中有以下内容,过去 10 次提交工作正常

<key>UTExportedTypeDeclarations</key>
<array>
    <string>public.url</string>
    <string>public.plain-text</string>
    <string>public.image</string>
</array>

删除它并上传到存储后一切正常 不知道与CFBundleDocumentTypes 有什么关系,但这就是原因

【讨论】:

以上是关于Info.plist 中 CFBundleDocumentTypes 键的值必须是字典数组的主要内容,如果未能解决你的问题,请参考以下文章

如何重建我的 Info.plist?

左列中不存在 Info.plist(但存在于 FINder 中)

从 iOS 的 UITests 中读取 Info.plist?

Info.plist 和 [app name]-Info.plist 有啥区别?

Xcode 项目中的两个 info.plist 文件如何工作?

在需要 Info.plist 的应用程序购买中提交/验证