Xcode Bitcode,包括符号设置对dSYM生成的影响 [英] Xcode Bitcode, Include Symbols settings effect on dSYM generation

查看:749
本文介绍了Xcode Bitcode,包括符号设置对dSYM生成的影响的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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





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



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

解决方案

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



这是我的指导方针:




  • 向Apple提交应用时始终选中包含符号框

  • 始终删除最终可执行文件(.app,.framework)

  • 永远不会剥离您的静态库,如果您有任何

  • ,您希望Apple的崩溃报告能够正常工作,即使您不打算查看它
  • li>


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



当然,有一些正当理由说明您的原因。可能不想与Apple分享符号。一个是你想混淆你的代码。我知道有几个应用程序可以做到这一点。当然,这是一种权衡,因为它会使符号化变得更加困难甚至不可能,这取决于混淆系统。



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



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


Since I use Crashlytics to handle my crashes, I always uncheck the "Include app symbols for your application to receive symbolicated crash logs from Apple" and keep the "Include Bitcode" one checked (future proof for Apple Watch) before submitting my app to iTunes Connect like this :

Crashlytics has an article about issue with Bitcode and missing dSYMs :

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

According to their screenshot, to download the new generated dSYM file created by Bitcode, there is a download link available directly in iTunes Connect, BUT, it seems that you must have checked "Include app symbols" to be able to download them, otherwise you simply get this:

So I'm a bit confused on how these two settings are required for the well-functioning of Crashlytics or any 3rd party crashes handler service.

Should I keep both settings checked? Is it OK to uncheck "Include app Symbols" since I don't use Apple's Crash organizer (from my understanding, dSYM files are uploaded to Crashlytics during their post-script archive) and only keep Bitcode checked or if I do that I won't be able to download new Bitcode generated dSYMs (causing problems to Crashlytics symbolize crashes correctly)?

解决方案

This is a good question. There are numerous knobs that affect the availability of debug symbol information for your app. It's confusing, and people are constantly tripped up by it.

Here are my guidelines:

  • always check the "include symbols" box when submitting apps to Apple
  • always strip your final executables (.app, .framework)
  • never strip your static libraries, if you have any
  • you want Apple's crash reporting to work, even if you don't plan to look at it

With this configuration, your dSYMs, produced locally or by Apple, will contain the debug information necessary for both Crashlytics and Apple's reporter to work. It is critical you share symbols with Apple when using bitcode. If you do not, it is likely you will never be able to see symbolicated crashes for that version of your app.

There are, of course, some valid reasons why you might not want to share symbols with Apple. One is you want to obfuscate your code. I'm aware of a few apps that do this. Of course, this is a trade-off, because it makes symbolication much harder, or even impossible, depending on the obfuscation system.

There are also reasons why you might not want to strip your executables. One is that you rely on a 3rd party crash reporting system that does not support server-side symbolication. This is less and less common, as far as I know, but it is something to be aware of.

Finally, you definitely do want Apple's crash reporting system to work, even if you never plan on using it. Apple's system is able to capture more crashes more reliably than any 3rd-party solution could. I'm sure it is also invaluable for Apple's internal work. It definitely does have limitations, but really doesn't cost you anything. So, keep it working, if for no other reason than to have the option to look at it in the future.

这篇关于Xcode Bitcode,包括符号设置对dSYM生成的影响的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆