Xcode 9.3 使用 URL 方案(深度链接)调用时构建崩溃 [重复]

Posted

技术标签:

【中文标题】Xcode 9.3 使用 URL 方案(深度链接)调用时构建崩溃 [重复]【英文标题】:Xcode 9.3 build crashes on call with URL scheme (deeplink) [duplicate] 【发布时间】:2018-04-10 13:38:27 【问题描述】:

在 Xcode 9.3 中,当我尝试通过以下 URL 方案(深层链接)打开应用程序时崩溃:myapp://somepath

Xcode 9.2 没有问题。我安装了两个 Xcode 版本,完全相同的代码在 Xcode 9.3 中崩溃,但在 Xcode 9.2 中没有。崩溃发生在调用到达之前:

AppDelegate.application(UIApplication, open : URL, sourceApplication : String?, annotation : Any) -> Bool

我在这个函数中设置了一个断点,它永远不会到达它,它只是在之前崩溃。这里是 crashlytics 日志:

http://crashes.to/s/3237f00bf6a

那么有什么想法是什么原因造成的或如何解决它?

【问题讨论】:

请将错误的相关部分和符号化的堆栈跟踪复制并粘贴到您的问题中(作为文本)。 @rmaddy 已链接的已回答问题的标题非常糟糕,因此很难找到。在问我的问题之前,我对 SO 进行了广泛的搜索。我建议留下我的问题,以便其他人可以更轻松地找到它。 没关系。作为骗子被关闭并不意味着应该删除该问题。顺便说一句 - 不是我的反对票。 @rmaddy 我明白了,谢谢。我对否决票没有问题。 :) 【参考方案1】:

这是 Swift4.1 的一个错误 https://bugs.swift.org/plugins/servlet/mobile#issue/SR-7240

解决方法是将函数替换为以下:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 

【讨论】:

或者用 auld good obj-c 替换 swift ;)

以上是关于Xcode 9.3 使用 URL 方案(深度链接)调用时构建崩溃 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 9.3 无法将构建提交到 App Store

Xcode 9.2 不支持 iOS 11.3 的 Xcode 需要 9.3

Android 深度链接问题!如何使用自定义 URL 方案 myapp://some_data

Xcode 9.3 无法查看实时设备日志

Xcode 9.3 编译 Swift 源项目永远不会完成

如何在 XCode 9.3 上收集覆盖率数据?