Facebook sdk登录Xcode 8测试版中的exc_错误访问

Facebook sdk登录Xcode 8测试版中的exc_错误访问,facebook,exc-bad-access,facebook-ios-sdk,ios10,xcode8,Facebook,Exc Bad Access,Facebook Ios Sdk,Ios10,Xcode8,最近,我开始添加我的应用程序IOS 10功能,但我遇到了一个奇怪的错误: 当我通过浏览器通过facebook SDK进行身份验证时,只要我在嵌入式浏览器中单击facebook自身的确认按钮,应用程序就会崩溃 不幸的是,这个bug没有提供信息,控制台没有告诉我任何关于它的信息,也没有调用堆栈来查看这个异常发生的位置 演示此错误原因有两点: 1.如果通过系统帐户登录,则不会出现此错误,但只有在浏览器中登录时才会出现此错误,如下图所示: (只要我点击OK,异常就会发生) 当我通过Xcode 7.x

最近,我开始添加我的应用程序IOS 10功能,但我遇到了一个奇怪的错误:

当我通过浏览器通过facebook SDK进行身份验证时,只要我在嵌入式浏览器中单击facebook自身的确认按钮,应用程序就会崩溃

不幸的是,这个bug没有提供信息,控制台没有告诉我任何关于它的信息,也没有调用堆栈来查看这个异常发生的位置

演示此错误原因有两点: 1.如果通过系统帐户登录,则不会出现此错误,但只有在浏览器中登录时才会出现此错误,如下图所示:

(只要我点击OK,异常就会发生)

  • 当我通过Xcode 7.x运行我的应用程序时,错误不会发生。因此,这可能与facebook SDK与新编译器的集成或类似的东西有关
  • 希望有人能回答这个问题,或者我能想出一个办法来调试这种没有信息的bug。 提前感谢,,
    丽兰。

    我刚刚遇到了类似的事情,但不幸的是,我没有时间去挖掘这个问题。但我发现了这个网站,它很好地解释了它的工作原理,以及如何调试它:

    因此,发生此错误的原因如下:

    总之,当您遇到EXC_BAD_访问时,这意味着您试图向无法执行该消息的内存块发送消息

    但是,在某些情况下,EXC_BAD_访问是由损坏的指针引起的。每当应用程序试图取消引用损坏的指针时,内核就会引发异常

    本文给出的解决方案之一是使用僵尸对象:

    单击左上角的活动方案,然后选择“编辑方案”

    选择左侧的运行并打开顶部的诊断选项卡。要启用僵尸对象,请勾选标记为启用僵尸对象的复选框。 如果您现在遇到EXC_BAD_访问,Xcode控制台中的输出将让您更好地了解从何处开始搜索

    它应该在日志中为您提供更多信息,以便您了解问题的根源。顺便说一句,这对我不起作用

    另一个解决方案是使用分析Xcode工具检查代码中可能存在的问题区域。 按
    Shift-Cmd-B
    使用它,或
    Product->Analyze
    它应该在Xcode左侧面板的问题导航器中显示您必须检查的可能问题。单击问题以显示对Xcode可疑的代码块,但最终可能根本不是问题的一部分


    更多信息,请查看上面的链接,我刚刚总结了文章的内容。

    我也遇到了这个问题。似乎其中一个UIApplication委托方法在iOS 9中被弃用,并可能在iOS 10中被删除

    optional func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
    
    我将其替换为以下方法:

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
            return FBSDKApplicationDelegate.sharedInstance().application(app,
                                                                         open: url,
                                                                         sourceApplication: options[.sourceApplication] as! String,
                                                                         annotation: options[.annotation])
    }
    

    谢谢兄弟,我也发现了这个问题,但是我发现这个问题只存在于Beta 6中,所以这一定是FB SDK的编译问题,所以它不会帮助调试它。我将等待下一个Xcode版本,我认为这是一个更好的解决方案:)不客气,我认为你是对的,这也是我决定做的,等待并希望稳定的版本将解决这个问题。但我猜你是说beta 8,对吗?祝你好运;)非常感谢你!有趣的是,如果
    AppDelegate
    实现了旧的
    openurl
    方法,应用程序就会直接崩溃。删除它,并实施新的解决了我的问题。嗨,Liran,请考虑评估我的答案下面留下的答案。它更直接地帮助人们解决这个问题。请看这里: