1

升级到 Swift 4.1 后我遇到了奇怪的崩溃

每次用户使用 NATIVE 选项使用 Facebook 应用程序登录我的应用程序时(如果它安装在设备上,这将打开您的 Facebook 应用程序本身)。我收到以下异常

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

屏幕看起来像这样仅供参考:

我的应用不是 blubshare,我把它从互联网上拉下来了

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 版。

任何想法或帮助表示赞赏。

4

0 回答 0