Lir*_*ivo 12 facebook exc-bad-access facebook-ios-sdk ios10 xcode8
最近我开始添加我的应用程序IOS 10功能,而我遇到了一个奇怪的错误:
当我在嵌入式浏览器中单击facebook本身的确认按钮时,通过浏览器使用facebook SDK进行身份验证时,应用程序崩溃了.
不幸的是,这个bug没有提供信息,控制台没有告诉我任何关于它的信息,并且没有调用堆栈来查看发生此异常的位置.
用于演示此错误的两点导致:1.如果登录是通过系统帐户进行登录,但只有在浏览器中登录时才会出现此错误,如下图所示:

(一旦我点击OK,就会发生异常)
希望有人能够回答这个问题,或者想知道如何调试这种无信息的bug.提前谢谢,丽然.
adi*_*tri 32
我也遇到了这个问题.似乎UIApplication Delegate方法中的一个在iOS 9中被弃用,并且可能在iOS 10中被删除.
optional func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
Run Code Online (Sandbox Code Playgroud)
我用以下方法替换它:
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])
}
Run Code Online (Sandbox Code Playgroud)
我刚刚遇到了类似的事情,但不幸的是我没有时间去挖掘问题。但我找到了这个网站,它很好地解释了它的工作原理以及如何调试它:What Is EXC_BAD_ACCESS and How to Debug It
所以,这就是发生此错误的原因:
总之,当您遇到 EXC_BAD_ACCESS 时,这意味着您尝试将消息发送到无法执行该消息的内存块。
然而,在某些情况下,EXC_BAD_ACCESS 是由损坏的指针引起的。每当您的应用程序尝试取消引用损坏的指针时,内核都会抛出异常。
本文给出的解决方案之一是使用Zombie Objects:
单击左上角的活动方案并选择编辑方案。
选择左侧的“运行”,然后打开顶部的“诊断”选项卡。要启用僵尸对象,请勾选标记为“启用僵尸对象”的复选框。如果您现在遇到 EXC_BAD_ACCESS,Xcode 控制台中的输出将使您更好地了解从哪里开始搜索。
它应该在日志中为您提供更多信息,以便您可以了解问题的根源是什么。顺便说一句,它对我不起作用。
另一个解决方案是使用分析Xcode 工具检查代码中可能存在问题的区域。按Shift-Cmd-B以便使用它,或者Product -> Analyze
它应该显示您必须在 Xcode 左侧面板上的问题导航器中检查的可能问题。单击该问题可显示 Xcode 可疑的代码块,但最终可能根本不是问题的一部分。
有关更多信息,请查看上面的链接,我只是总结了文章所说的内容。
| 归档时间: |
|
| 查看次数: |
2316 次 |
| 最近记录: |