我最近注意到我的应用程序存在一些问题,导致上传到Appstore时出现警告:
无效的文档配置 -基于文档的应用应支持文档浏览器(UISupportsDocumentBrowser = YES)或实现就地打开(LSSupportsOpeningDocumentsInPlace = YES / NO) 。访问https://developer.apple.com/document-based-apps/了解更多信息。
我的应用程序响应其plist“文档类型”中的自定义扩展名,并在iOS 12 / Xcode 10之前正常工作。
在.plist中的“是”上添加“支持就地打开文档”并且将“支持文档浏览器”添加到“否”时,它会崩溃,并显示以下消息:
“应用程序具有LSSupportsOpeningDocumentsInPlace键,但未在委托上实现application:openURL:options:”
我的应用程序支持iOS 8或更高版本,并且可以很好地响应:
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
在我的AppDelegate中。
当我添加新的
- (void)openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenExternalURLOptionsKey, id> *)options completionHandler:(void (^)(BOOL success))completion
它仍然因上面的错误而崩溃。
答案 0 :(得分:4)
将此添加到您的应用程序委托中:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
return YES;
}
自ios 12起,如果您还在info.plist
中添加了 LSSupportsOpeningDocumentsInPlace ,则是必需的