objective-c - iOS 12 Xcode 10 应用程序 :openURL:options: Crash

标签 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 中将“支持就地打开文档”添加为"is"并将“支持文档浏览器”添加为“否”时,它会崩溃并显示此消息:

“应用程序具有 LSSupportsOpeningDocumentsInPlace key ,但未在委托(delegate)上实现应用程序:openURL:选项:”

我的应用支持 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 

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

最佳答案

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

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

自 ios 12 起,如果您还在 info.plist 中添加了 LSSupportsOpeningDocumentsInPlace,则它是必需的

关于objective-c - iOS 12 Xcode 10 应用程序 :openURL:options: Crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516584/

相关文章:

ios - Xcode 10 中没有用于开发/临时/企业的导出选项

objective-c - UINavigationBar 可编辑标题?

objective-c - 在哪里放置代码 配置持久存储以进行迁移

objective-c - 使用 NSSortDescriptor 对数组进行排序

iphone - 从 uitableview 崩溃中删除行

ios - tableview 为零并且应用程序崩溃 ios xcode

objective-c - 为什么我的 Xcode 将可选委托(delegate)方法识别为无法识别的选择器?

java - 如何在移至Google Activity时解决崩溃问题

ios - Xcode 10 - 多个命令生成 .app

ios - 我可以在同一 View Controller 中添加两个选项卡栏,一个选项卡栏在底部,一个选项卡栏在顶部