首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode仪器正在剥离符号,尽管所有的构建设置都相反。

Xcode仪器正在剥离符号,尽管所有的构建设置都相反。
EN

Stack Overflow用户
提问于 2012-06-27 00:09:23
回答 8查看 8.6K关注 0票数 13

问题

工具的时间分析器正在从我的应用程序中删除除系统库之外的所有符号,尽管我已经在Xcode中的所有相关构建设置中禁用了这种行为--,但只在一台开发机器上。--另一台开发机器正常工作。

描述

this的时间分析器正在剥离除系统库之外的所有符号,尽管我已经在Xcode中的所有相关构建设置中禁用了此行为--但这只发生在我的一台开发机器上。我有两台开发机器运行着相同版本的OS、Xcode和仪器,每台机器都使用同一个Xcode项目的相同副本,具有相同的构建设置、方案和其他配置,应用程序使用相同的测试设备(iPhone 4S和iOS 5的最新公开版本)进行分析。

机器1

  • Mac 10.7.4
  • Xcode 4.3.2 (4E2002)
  • 文书4.3 (4321)

机器2

  • Mac 10.7.4
  • Xcode 4.3.2 (4E2002)
  • 文书4.3 (4321)

复制的步骤

  1. 在每台机器上打开包含样例的项目。
  2. 确保选择iPhone 4S作为测试设备。
  3. 选择Product> Profile
  4. 当仪器启动时,选择时间分析器并继续。
  5. 运行应用程序。
  6. 注意在iMac (机器1)上运行的符号是如何剥离的,而在MacBook Air (机器2)上却没有。

期望行为

我自己代码中的符号应该出现在这两台机器上的时间分析器中。

回归

我尝试了以下所有方法,但实际结果没有改变:

  1. 重新启动机器。
  2. 尝试其他Xcode项目
  3. 删除Xcode管理器中所有项目的“派生数据”。
  4. 在仪器中重新符号化文档(在~/Library/blahBlahBlah…中仔细选择正确的DSYM文件)

最后说明

下面是指向示例项目的.zip文件的链接:样本工程.zip

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-07-05 19:35:47

我终于能够通过一种避免核武器和铺路的方法来让它发挥作用:

  1. 确保当前的构建配置禁用了所有符号剥离。请确保您已经为您的发行版配置做了此操作,如果这是对仪器的分析。
  2. 从iOS设备中删除应用程序。
  3. 重新启动iOS设备。
  4. 重新启动Mac (否则,我根本不相信Xcode或Lion会退出所有相关进程)。
  5. 启动Xcode,转到组织者> Projects,并删除受影响项目的派生数据。
  6. 清理你的项目。见鬼,为什么不呢?
  7. 为仪器建立和配置文件。
  8. 为清晰起见,请选择仪器中的时间分析器。
  9. 第一次运行不会显示符号,但不要退出。让仪器开动!
  10. 在“仪器”中重新符号化文档,小心地导航到当前生成的正确dSYM文件.这应该更容易一些,因为您已经删除了步骤5中的派生数据。
  11. 现在你应该能看到你的符号了。如果你隐藏非目标C符号的话会有帮助。

为什么我建议您删除应用程序并在步骤2和步骤3中重新启动iOS设备?我怀疑Xcode没有对每个构建执行干净的安装,但可能会安装delta,因此存在于仪器中的符号地址是当前构建和以前构建的混合。如果是这样的话,那么这个问题对像我这样的人来说就更常见了,他们在多台Mac之间共用一台测试设备。这一假设可能大错特错。

如果以上步骤不适用于您,请在评论中告知我。我想在将来的某个时候做一份详细的雷达报告。

票数 8
EN

Stack Overflow用户

发布于 2012-11-17 22:12:44

我不确定它是否在4.3中被修复了,但这是4.2 在这里看到的中已知的一个问题

关于Xcode 4.2中的概要操作,有一个已知的问题。在未更改源文件的生成之后,仪器将无法为目标应用程序收集符号。

这影响到以下两个项目:

  1. 为配置文件操作选择发行配置。(默认)
  2. “条链接产品生成”设置设置为“是”,或者自定义运行脚本生成阶段会剥离产品。(非默认)

解决方法是执行以下任何一项操作:

  1. 在启动配置文件操作之前,对产品执行“清洁”操作。
  2. 对产品进行清理,并在分析过程中暂时将“条链接产品生成”设置设置为“否”。
  3. 将配置文件操作的配置设置为Debug。
  4. 当不需要重建时,直接从仪器内部运行连续配置文件。在开发Mac应用程序时,使用仪器中的GC监视器模板可能会导致仪器崩溃。要解决这个问题,请考虑将您的应用程序迁移到ARC。
票数 1
EN

Stack Overflow用户

发布于 2013-01-03 16:23:16

我也遇到了类似的问题好几天了。我能够分析调试配置,但没有发布。首先,我尝试制作发布配置的副本(就像web上的某个地方所建议的那样),但该副本也没有工作。

然后,我制作了一份Debug的副本,名为Profile,试了一试,配置文件的符号被显示在分析器中。太棒了!然后,我将优化级别等更改为与版本相同的版本,现在它开始工作了!只是想和大家分享一下,因为这句话可以让我省下几个小时.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11217673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档