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

ma1*_*w28 27 xcode strip clang debug-symbols testflight

TestFlight SDK建议设置Strip Debug Symbols During CopyYES在Xcode构建设置,以实现最佳崩溃报告可能的.我注意到它YES默认设置为.

我应该改成YES吗?为什么或者为什么不?

jas*_*ori 28

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

答案很长:

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

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

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

对此感到抱歉!


Ker*_*rni 26

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

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


Man*_*nni 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应用程序的调试信息,必须将所有项目配置的项目设置设置为NO"Strip Debug Symbols".

  • 这两个提示都很糟糕,因为你夸大了应用程序的大小.此外,无需将它们添加到二进制文件中,因为它们可以在Mac上进行符号化.此外,我参与的服务HockeyApp提供完整的服务器端崩溃报告符号,而无需将符号添加到二进制文件中.此外,Testflight改变了推荐,因为他们允许上传dSYM一段时间.他们可能没有更新他们的FAQ. (17认同)