我们为一个客户端提供了一个非常重要的应用程序套件,其中包含几个应用程序目标,这些目所有目标都包含在一个XCode项目文件中。
出于某种原因归档应用程序时,dSYM文件不包含静态库的任何调试符号。结果是,当尝试从字段代理程序中表示崩溃日志时,我们无法看到这些静态库中发生的情况。
我尝试使用一个应用程序目标和一个静态库创建一个新的简单XCode项目。即使这样,调试符号也丢失了。我没有运气,根据这个https://github.com/TheRealKerni/QuincyKit/issues/91摆弄了构建设置。
如果我构建FOR归档,则包含调试符号。我在生成的dSYM文件上运行了dwarfdump,并且能够看到静态库实现文件的符号。但是,当我尝试归档项目时,符号将被排除。
我错过了什么吗? XCode版本4.4.1
答案 0 :(得分:3)
我正在使用XCode 5.1.1并遇到同样的问题。
修复方法是为每个从属库项目将“部署”部分下的“剥离链接产品”设置设置为“否”。有关详细信息,请参阅我的帖子
答案 1 :(得分:1)
这似乎在更高版本的XCode中修复,目前使用的是4.6,问题就消失了。
如果您使用的是旧版本,请执行以下操作: 产品> Build for>存档 产品>档案 从派生数据打开构建的产品,您可以通过右键单击Products组中的Youapp.app文件并选择show in finder来完成此操作。确保您位于Release-xxx文件夹中。复制在那里生成的dSYM文件,并替换归档过程生成的文件。要查找归档文件的位置,请转到“管理器”,“归档”选项卡,右键单击某个项目并在查找器中显示。
希望这有帮助。
答案 2 :(得分:-2)
默认情况下,archive使用release build,它已经对调试符号进行了条带化。您可以将存档构建选项更改为“非条带化”。