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