升级到 Swift 4.1 后我遇到了奇怪的崩溃
每次用户使用 NATIVE 选项使用 Facebook 应用程序登录我的应用程序时(如果它安装在设备上,这将打开您的 Facebook 应用程序本身)。我收到以下异常
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
屏幕看起来像这样仅供参考:
Crashlytics 给我的所有内容如下
AppDelegate.swift line 0 @objc AppDelegate.application(UIApplication, open : URL, sourceApplication : String?, annotation : Any) -> Bool 2 UIKit
__58-[UIApplication _applicationOpenURLAction:payload:origin:]_block_invoke + 880
我已经能够在我的设备上重现,并且本地崩溃日志同样没有帮助。崩溃发生在我的 AppDelegate 文件的第一行,在可理解的代码中没有任何东西可以回溯。
这显然是违规行。
class AppDelegate: UIResponder, UIApplicationDelegate {
我已经尝试启用 Zombie 对象,因为 EXC_BAD_ACCESS 通常意味着某些东西被解除分配,以收集一些没有运气的数据。
奇怪的是,如果我执行以下操作:
let login:FBSDKLoginManager = FBSDKLoginManager()
login.loginBehavior = .web
不会发生崩溃。这让我相信,当使用 .native 选项(如果您安装了 facebook,则为默认选项)时,应用程序切换会以某种方式导致崩溃。
使用 .web 是一种临时解决方法,但我真的很想知道为什么这会导致崩溃的根本原因。FBSDKLoginKit 对我来说是 4.32.0 版。
任何想法或帮助表示赞赏。
