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

mar*_*010 5 crash objective-c openurl ios12 xcode10

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

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

我的应用程序响应其plist'Document Types'中的自定义扩展名集,并在iOS 12 / Xcode 10之前正常工作。

当在.plist中的“是”中添加“在现场支持打开文档”并且在“否”中将“支持文档浏览器”添加为否时,此消息崩溃:

“应用程序具有LSSupportsOpeningDocumentsInPlace键,但未在委托上实现application:openURL:options:”

我的应用程序支持iOS 8或更高版本,并且可以很好地响应:

(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
Run Code Online (Sandbox Code Playgroud)

在我的AppDelegate中。

当我添加新的

- (void)openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenExternalURLOptionsKey, id> *)options completionHandler:(void (^)(BOOL success))completion 
Run Code Online (Sandbox Code Playgroud)

它仍然崩溃与上面的错误。

Rad*_*che 6

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

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

从ios 12开始,如果您还在info.plist中添加了LSSupportsOpeningDocumentsInPlace,则是必需的