Xcode位代码,在dSYM生成中包含符号设置效果

由于我使用Crashlytics来处理我的崩溃,所以在将我的应用程序提交给iTunes之前,我总是取消选中“包含应用程序符号以接收来自Apple的符号化崩溃日志”,并保留“包含位代码”像这样连接:

设置

Crashlytics有一篇关于Bitcode和缺lessdSYMs的文章:

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

根据他们的截图,要下载由Bitcode创build的新生成的dSYM文件,有一个下载链接可直接在iTunes Connect中使用,但是,似乎您必须选中“包含应用程序符号”才能下载它们,否则您简单地得到这个:

没有

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

我应该保持这两个设置检查? 是否可以取消select“包括应用程序符号”,因为我不使用苹果的崩溃组织者(从我的理解,dSYM文件上载到Crashlytics他们的后脚本存档),只保留位代码检查,如果我这样做,能够下载新的Bitcode生成的dSYMs(导致Crashlytics的问题象征着崩溃正确)?

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

这是我的准则:

  • 将应用程序提交给Apple时,请务必选中“包含符号”框
  • 总是将最终的可执行文件 (.app,.framework)
  • 如果有的话,永远不要剥离你的静态库
  • 你希望苹果的崩溃报告工作,即使你不打算看看它

有了这个configuration,您的dSYM,由本地或苹果公司生产,将包含Crashlytics和苹果公司记者工作所需的debugging信息。 使用位码时,与Apple共享符号非常重要 。 如果你不这样做,很可能你永远无法看到该应用程序版本的符号崩溃。

当然,有一些合理的原因可能导致你不想与苹果公司分享符号。 一个是你想混淆你的代码。 我知道有几个应用程序可以做到这一点。 当然,这是一个权衡,因为它使符号化更难,甚至不可能,取决于混淆系统。

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

最后,即使您从未计划使用它,您也一定希望Apple的崩溃报告系统能够正常工作。 苹果的系统能够比任何第三方解决scheme更可靠地捕获更多的崩溃。 我相信这对苹果的内部工作也是无价的。 它绝对有限制,但是真的不花你任何东西。 所以,保持它的工作,如果没有其他的原因,可以select在未来看看它。