问题
Instruments 的 Time Profiler 正在从我的应用程序中删除除系统库之外的所有符号,尽管我已在 Xcode 的所有相关build设置中禁用此行为 — 但仅在一台开发机器上。 另一台开发机器运行正常。
说明
Instruments 的 Time Profiler 正在剥离除系统库之外的所有符号,尽管事实上我已在 Xcode 的所有相关build设置中禁用了此行为——但这仅发生在我的一台开发机器上。我有两台开发机器运行相同版本的 OS X、Xcode 和 Instruments,每台机器都使用相同 Xcode 项目的相同副本,具有相同的build设置、方案和其他配置,并且应用程序使用相同的配置文件进行配置测试设备(iPhone 4S 最新公开版 iOS 5)。
机器 1
- Mac OS X 10.7.4
- Xcode 4.3.2 (4E2002)
- 仪器 4.3 (4321)
机器 2
- Mac OS X 10.7.4
- Xcode 4.3.2 (4E2002)
- 仪器 4.3 (4321)
重现步骤
预期行为
我自己的代码中的符号应该出现在两台机器上的 Time Profiler 中。
回归
我已经尝试了以下所有方法,但实际结果没有变化:
最后说明
这是一个示例项目的 .zip 文件的链接:Sample Project .zip
最佳答案
我终于能够通过一种与核武器和铺路方案相提并论的方法使其工作:
为什么我建议你在第 2 步和第 3 步中删除应用并重启 iOS 设备?我怀疑 Xcode 不会对每个构建执行全新安装,但可能会安装增量,这样 Instruments 中存在的符号地址是当前构建和以前构建的混合。如果是这样,那么对于像我这样在多个 Mac 之间共享单个测试设备的人来说,这个问题就更常见了。这个假设可能是非常不正确的。
如果上述步骤对您不起作用,请在评论中告诉我。我想在 future 的某个时候创建一份详细的雷达报告。
关于尽管所有build设置都相反,Xcode Instruments 正在剥离符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217673/