Xcode:我应该在复制过程中删除调试符号吗?

时间:2012-01-11 23:31:29

标签: xcode clang strip debug-symbols testflight

TestFlight SDK建议在Xcode Build Settings中将Strip Debug Symbols During Copy设置为YES,以便实现最佳崩溃报告。我注意到它默认设置为YES

我应该将其更改为YES吗?为什么或为什么不呢?

3 个答案:

答案 0 :(得分:28)

我在TestFlight工作。简短的回答是:将其设置为YES

答案很长:

@Kerni是对的。在我们开始象征服务器端之前,我们需要在设备上进行符号化。

因此,如果您将dSYM上传到TestFlight,则可以剥离它们。如果您由于某种原因不想上传dSYM,可以将它们保留下来,TestFlight可以在设备上进行符号化。

基本上README没有更新。对不起@Manni!我会为下一个版本更新它。 (我将删除整个部分。)

对此感到抱歉!

答案 1 :(得分:26)

如果默认设置为YES,则无需执行任何其他操作。

通常,此设置可确保调试符号不是分布式二进制文件的一部分,从而将文件大小减小30-50%。应将调试符号写入dSYM DWARF文件,该文件稍后可用于表示崩溃报告。

答案 2 :(得分:8)

TestFlight SDK建议将此设置设置为 NO ,而不是YES:

  

为了实现最佳崩溃报告,我们建议将Xcode中的以下项目构建设置设置为NO,以便为要进行实时崩溃报告的所有目标设置。您可以通过打开Project Navigator(默认命令+ 1或命令+ shift + j)然后单击要配置的项目(通常是列表中的第一个选项)来查找构建设置。从那里,您可以选择在单个项目的基础上更改全局项目设置或设置。所有   以下设置位于部署部分。

     
      
  • 部署Postrocessing
  •   
  • 复制期间删除调试符号
  •   
  • 剥离链接产品
  •   

Bugsense(http://www.bugsense.com/pages/faq)也推荐此设置:

  

为什么我的iOS应用程序会获得内存转储而不是堆栈跟踪?       iOS应用程序通常不包含调试信息,或者此信息包含在扩展名为dSYM的特殊文件中   (调试SYMbols)。打开(并包含在二进制文件中)调试   您的iOS应用程序的信息必须设置为否项目设置   所有项目配置都称为“剥离调试符号”。