iOS 12 Xcode 10应用程序:openURL:选项:崩溃

时间:2018-09-26 11:22:45

标签: objective-c crash xcode10 openurl ios12

我最近注意到我的应用程序存在一些问题,导致上传到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 

它仍然因上面的错误而崩溃。

1 个答案:

答案 0 :(得分:4)

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

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

自ios 12起,如果您还在info.plist

中添加了 LSSupportsOpeningDocumentsInPlace ,则是必需的