Xcode:复制过程中是否应该去除调试符号?

Xcode:复制过程中是否应该去除调试符号?,xcode,clang,strip,debug-symbols,testflight,Xcode,Clang,Strip,Debug Symbols,Testflight,建议在Xcode生成设置中将复制期间剥离调试符号至是,以尽可能实现最佳的崩溃报告。我注意到它默认设置为YES 我是否应该将其更改为是?为什么或为什么不?如果默认设置为YES,则无需执行任何其他操作 通常,此设置可确保调试符号不是分布式二进制文件的一部分,从而将文件大小减少30-50%。调试符号应改为写入dSYM DWARF文件,该文件稍后可用于符号化崩溃报告。TestFlight SDK建议将此设置设置为否,而不是是: 为了尽可能实现最佳的崩溃报告,我们建议为所有要进行实时崩溃报告的目标将Xco

建议在Xcode生成设置中将
复制期间剥离调试符号
,以尽可能实现最佳的崩溃报告。我注意到它默认设置为
YES


我是否应该将其更改为
?为什么或为什么不?

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


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

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

为了尽可能实现最佳的崩溃报告,我们建议为所有要进行实时崩溃报告的目标将Xcode中的以下项目生成设置设置设置为“否”。通过打开项目导航器(默认命令+1或命令+shift+j),然后单击正在配置的项目(通常是列表中的第一个选择),可以找到生成设置。从中,您可以选择更改全局项目设置或单个项目的设置。全部的 下面的设置位于部署部分

  • 部署后处理
  • 复制期间剥离调试符号
  • 条连产品
虫情(http://www.bugsense.com/pages/faq)还建议使用以下说明进行此设置:

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


我在试飞公司工作。简单的回答是:将其设置为
YES

长答覆:

@科尼是对的。在开始对服务器端进行符号化之前,我们需要这些数据在设备上进行符号化

因此,如果您将dSYM上传到TestFlight,您可以将其剥离。若出于某种原因,你们不想上传你们的dSYM,你们可以把它们留在里面,TestFlight可以在设备上进行符号化

自述文件基本上没有更新。对不起,曼尼!我将在下一版本中更新它。(我将删除整个部分)


抱歉搞混了

这两个技巧都不好,因为你把应用程序的大小放大了太多。此外,也没有必要将它们添加到二进制文件中,因为它们可以在Mac上进行符号化。另外,我参与的服务HockeyApp提供了完整的服务器端崩溃报告符号,而无需将符号添加到二进制文件中。Testflight也改变了他们的建议,因为他们允许上传一段时间以来的dSYM。他们可能没有更新FAQ。这是不正确的:TestFlight SDK建议您在复制期间将
带调试符号设置为
!如果我为
Debug
将其设置为
NO
,该怎么办?它对我调试有帮助吗?本地应用的大小是否更大有关系?它构建应用程序的速度较慢吗?我认为没有任何理由将其设置为“否”进行调试。我不认为这有什么帮助。该应用程序较大,因此加载到设备上的速度会稍慢。为什么要说您应该将其设置为
?我还尝试了他在
xcode6.4
中所说的,对于一个新项目,项目的设置被设置为
NO