警告 ITMS-90737:"无效的文档配置"

18

今天上传我的应用程序到ItunesConnect时,我收到了以下错误信息:

无效的文档配置 - 文档式应用程序需要支持文档浏览器 (UISupportsDocumentBrowser = YES) 或实现地点打开文档(LSSupportsOpeningDocumentsInPlace = YES/NO)。请访问https://developer.apple.com/document-based-apps/获取更多信息。


2
这个问题被标记为重复,但是另一个问题没有被接受的答案,而这个问题有。这个问题的被接受的答案帮助我快速解决了我的问题。 - MB Stephenson
1个回答

23

解决方法 -

打开 Info.plist 文件。

如果你的应用程序中有UIDocumentInteractionController,请使用 -
添加 "UISupportsDocumentBrowser" 选择布尔值 YES

否则 -
添加 "LSSupportsOpeningDocumentsInPlace" 选择布尔值 YES

Info.plist 代码:

//if using - UIDocumentInteractionController
<key>UISupportsDocumentBrowser</key>
    <true/>

//if not use - 
<key>LSSupportsOpeningDocumentsInPlace</key>
    <true/>

来自苹果开发者文档

UISupportsDocumentBrowser

UISupportsDocumentBrowser (Boolean - iOS)指定应用程序是基于文档的,并使用UIDocumentBrowserViewController类。

如果将此键设置为YES,则用户可以在设置中设置文档浏览器的默认保存位置。此外,本地文件提供程序授予对应用程序文档目录中所有文档的访问权限。这些文档会出现在文件应用和文档浏览器中。用户可以直接打开和编辑这些文档。

此键在iOS 11及更高版本中受支持。

UIDocumentInteractionController

使用此类来呈现适当的用户界面,以预览、打开、复制或打印指定的文件。例如,邮件程序可以使用此类来允许用户预览附件并在其他应用中打开它们。 呈现其用户界面后,文档交互控制器处理支持文件预览和菜单显示所需的所有交互。 您还可以使用委托参与在呈现的界面内发生的交互。例如,在将文件移交给另一个应用程序进行打开之前,将通知委托。有关您可以在委托中实现的方法的完整描述,请参见UIDocumentInteractionControllerDelegate。 参考链接
LSSupportsOpeningDocumentsInPlace

LSSupportsOpeningDocumentsInPlace(布尔值 - iOS)设置为YES时,使您的应用程序能够从文件提供程序打开原始文档,而不是文档的副本。该应用程序可以从系统的本地文件提供程序、iCloud文件提供程序以及支持在原地打开文档的任何第三方文件提供程序扩展访问文档。

在原地打开的文档的URL是安全范围的。有关使用安全范围URL和书签的信息,请阅读NSURL类参考中的概述,并阅读App Extension编程指南中的Document Provider。

重要提示:在打开原地文档时,其他进程可以随时修改文档。因此,您必须使用UIDocument子类或NSFilePresenter和NSFileCoordinator对象协调对文档的访问。

在iOS 11及更高版本中,如果同时设置了此键和UIFileSharingEnabled键为YES,则本地文件提供程序将授予访问应用程序文档目录中所有文档的权限。这些文档将出现在Files应用程序和文档浏览器中。用户可以在原地打开并编辑这些文档。

参考链接

设置文档浏览器应用程序 链接


2
请阅读错误信息。根据应用程序的需求,您只需设置其中一个,而不是两个同时设置。 - rmaddy
3
如果你的应用程序不支持打开文档,则不要将LSSupportsOpeningDocumentsInPlace设置为真!如果你只想让你的应用程序像以前一样工作而不做任何更改,那么将其设置为false可能是正确的选择。 - Nestor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接