我已经调查我们应用中的崩溃问题很长时间了,但我仍然不明白为什么 Crashlytics 无法用符号表示某些崩溃(具体来说是 3 次)。这些实际上是应用程序当前的主要崩溃,我们正在拼命寻找任何可能的提示。
我们的应用程序启用了位码并选择将 dSYM 上传到 Apple。我试图通读 Crashlytics 文档 All about Missing dSYMs ,从 iTunesConnect 手动下载 dSYM zip,将其上传到 fabric。 “隐藏的”崩溃数之后不断增加,问题是,我们从未在 fabric 中收到 dSYM 丢失警告,并且它没有在 fabric settings page 中显示 dSYM 丢失。对于我们正在尝试调查的应用构建。
堆栈跟踪是这样的: Crash stack trace
任何帮助和建议将不胜感激!谢谢!
最佳答案
我无法告诉您符号化失败的原因。但是通过查看您的崩溃报告,我想到了一些事情,也许它们可以以某种方式帮助您。
崩溃发生在一个以某种方式使用 UIWebView 的闭包内。在用 javascript 做了一些事情之后,资源被释放,这就是崩溃发生的时候。您可以在此处查看最后调用的代码:
那里没什么特别的。
我的猜测是,闭包的输入变量被提前释放了。即使你是盲人,在没有工作符号的情况下,你也可以尝试找到启动 JavaScript 调用的闭包并检查这种情况,例如[unowned self] in
或类似的并尝试将它们传递给 owned。这显然会导致内存泄漏,但您可以在释放之前对其进行测试。
关于iOS Crashlytics 崩溃日志显示 _hidden,即使在将位码 dSYM 上传到 fabric 后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478097/