iOS 12 Xcode 10 application:openURL:options:崩溃

iOS 12 Xcode 10 application:openURL:options: Crash

我最近注意到我的应用程序存在一些问题,导致在上传到 Appstore 时出现警告:

无效文档配置 - 基于文档的应用程序应支持文档浏览器 (UISupportsDocumentBrowser = YES) 或实施就地打开 (LSSupportsOpeningDocumentsInPlace = YES/NO).访问 https://developer.apple.com/document-based-apps/ 了解更多信息。

我的应用响应其 plist 'Document Types' 中设置的自定义扩展,并且在 iOS 12/Xcode 10 之前运行良好。

在 .plist 中将 'Supports opening documents in place' 添加到 YES 并将 'Supports Document Browser' 添加到 NO 时,它会崩溃并显示以下消息:

'应用程序具有 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 

它仍然因上述错误而崩溃..

将此添加到您的应用委托中:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
    return YES;
}

因为 ios 12 如果您还在 info.plist

中添加了 LSSupportsOpeningDocumentsInPlace,则它是必需的