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

all*_*ire 5 iphone xcode ios crashlytics swift

由于我使用Crashlytics来处理我崩溃,我总是取消选中"包含应用程序的符号为您的应用程序从苹果公司获得symbolicated崩溃日志",并保持"包括位码"提交我的应用程序iTunes的前一个检查(未来Apple关注证明)像这样连接:

设置

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

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

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

没有

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

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

Mat*_*tie 9

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

以下是我的指导方针:

  • 在向Apple提交应用程序时,请始终选中"包含符号"框
  • 总是删除你的最终可执行文件(.app,.framework)
  • 永远不要删除你的静态库,如果有的话
  • 即使您不打算查看它,您也希望Apple的崩溃报告能够正常运行

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

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

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

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

  • 你说对了.只有在使用bitcode时才需要与Apple共享符号.调试符号需要在生成dSYM的系统上表示.所以,当你的机器上发生了这种情况时,Crashlytics的情况就好了.不过,苹果公司的记者仍然会受到损害.取消选中该框基本上没有充分的理由(尽管有片状上传). (2认同)