Xcode Bitcode,包括符号设置对dSYM生成的影响

时间:2016-10-04 02:23:09

标签: ios iphone swift xcode crashlytics

由于我使用Crashlytics来处理我的崩溃,因此我总是取消选中“包含应用程序的应用程序符号以接收来自Apple的符号化崩溃日志”并保留“Include Bitcode”

Settings

Crashlytics有一篇关于Bitcode和缺少dSYM问题的文章:

https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#bitcode-download

根据他们的截图,要下载由Bitcode创建的新生成的dSYM文件,可以直接在iTunes Connect中找到下载链接,但是,您似乎必须选中“包含应用符号”才能下载它们,否则你只是得到这个:

No

所以我对Crashlytics运行良好或任何第三方崩溃处理程序服务需要这两个设置有点困惑。

我应该检查两个设置吗?可以取消选中“Include app Symbols”,因为我没有使用Apple的Crash组织器(根据我的理解,dSYM文件在他们的后脚本存档期间上传到Crashlytics)并且只保留Bitcode或者如果我这样做我就赢了'能够下载新的Bitcode生成的dSYM(导致Crashlytics问题正确地表示崩溃)?

1 个答案:

答案 0 :(得分:8)

这是一个很好的问题。有许多旋钮会影响应用程序的调试符号信息的可用性。它令人困惑,人们不断被它绊倒。

以下是我的指南:

  • 始终检查"包含符号"向Apple提交应用时的框
  • 始终删除最终的可执行文件(.app,.framework)
  • 如果您有任何
  • ,请永远不要剥离您的静态库
  • 您希望Apple的崩溃报告能够正常工作,即使您不打算查看它

使用此配置,您在本地或Apple生产的dSYM将包含Crashlytics和Apple的记者工作所需的调试信息。在使用bitcode时,您与Apple共享符号 critical 。如果不这样做,很可能您永远无法看到该应用版本的符号化崩溃。

当然,您可能不希望与Apple共享符号的一些正当理由。一个是你想混淆你的代码。我知道有几个应用程序会这样做。当然,这是一种权衡,因为根据混淆系统,它使符号化更难,甚至不可能。

还有一些原因可能导致您不想删除可执行文件。一个是您依赖于不支持服务器端符号的第三方崩溃报告系统。据我所知,这种情况越来越少,但需要注意的事项。

最后,您确实希望Apple的崩溃报告系统能够正常工作,即使您从未打算使用它。 Apple的系统能够比任何第三方解决方案更可靠地捕获更多崩溃。我相信它对于Apple的内部工作也是非常宝贵的。它肯定有局限性,但实际上并没有花费你任何成本。因此,如果没有其他原因,请保持其正常工作,而不是将来可以选择查看它。