问题
仪器的Time Profiler正在从我的应用程序中剥离除系统库之外的所有符号,尽管我已在Xcode的所有相关构建设置中禁用了此行为 - 但仅在一台开发机器上。其他开发机器正常运行。
描述
仪器的Time Profiler正在剥离除系统库之外的所有符号,尽管事实上我已经在Xcode的所有相关构建设置中禁用了这种行为 - 但这只发生在我的一台开发机器上。我有两台运行相同版本的OS X,Xcode和Instruments的开发机器,每台机器使用相同的Xcode项目的相同副本,具有相同的构建设置,方案和其他配置,并且应用程序使用相同的方式进行分析测试设备(带有iOS 5最新公开版本的iPhone 4S)。
机器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中。
回归
我尝试了以下所有方法,但实际结果没有变化:
重新启动机器。
尝试其他Xcode项目
删除Xcode Organizer中所有项目的“派生数据”。
重新象征文书中的文件(在〜/ Library / blahBlahBlah中仔细选择正确的DSYM文件......)
最终笔记
以下是示例项目的.zip文件的链接:Sample Project .zip
答案 0 :(得分:6)
我终于能够通过一种只是羞于核武器的方法来实现它的工作:
为什么我建议您删除应用并在步骤2和3中重启iOS设备?我怀疑Xcode没有执行每个构建的干净安装,但可能会安装增量,这样仪器中的符号地址是当前构建和以前构建的混合。如果是这样,那么对于像我这样在一台以上Mac之间共享一个测试设备的人来说,这个问题更为常见。这种假设可能非常不正确。
如果以上步骤对您不起作用,请在评论中告诉我。我想在未来的某个时刻制作详细的雷达报告。
答案 1 :(得分:1)
我不确定它是否已在4.3中修复但这是4.2 seen here
中已知的问题仪器 Xcode 4.2中的Profile操作存在已知问题。在没有源文件发生更改的构建之后,Instruments将无法为目标应用程序收集符号。
这会影响两者的项目:
解决方法是执行以下任一操作:
答案 2 :(得分:1)
我好几天都有类似的问题。我能够分析Debug配置,但不能发布。首先,我尝试制作发布配置的副本(如网络上的某处所示),但该副本也不起作用。
然后我制作了一份Debug,称为Profile,尝试了它,Profile的符号显示在探查器中。大!然后我将优化级别等更改为与Release相同,现在它可以工作!只是想分享这个,因为这个评论会让我免受伤害......
答案 3 :(得分:0)
一直面对同样的事情,偶然发现了这个主题。
我意识到我首先使用发布版本来分析应用程序,并且在Xcode中为同一个应用程序更改了方案后,分析器仍然无法进行符号化。我已经尝试了你上面提到的所有明显的解决方案但是徒劳无功。
探查器不知何故仍然指的是第一个构建(发布版本)的设置,因此它无法进行符号化。因此,我只是更改了应用程序的包标识符以进行测试,以便创建一个新的应用程序以进行性能分析。我现在可以查看存在泄漏的代码。
尝试一下,让我知道这是否也适合你。仍然在思考为什么乐器无法象征。
答案 4 :(得分:0)
我有一个类似的问题,我在我的os x应用程序中没有使用命令行构建的符号(因此在这种情况下,它不是iphone或xcode问题)。原来这个问题是由于包含我的PATH的错误的DYLD_LIBRARY_PATH造成的。当我摆脱所有那些非库路径,例如/ usr / bin /时,它起作用了。
答案 5 :(得分:0)
我有很多第三方框架,不幸的是它们的符号和二进制文件都丢失了。
此外,我的应用程序的二进制文件已丢失。
即如果选择“文件”>“符号”,单击目标,然后找到名称相似的项目,则“二进制路径”显示为红色。
解决方案是转到仪器>首选项>符号,然后将/Users/<MY_USER>/Library/Developer/Xcode/DerviedData
添加到搜索路径。 Library
没有被Spotlight索引。完成此操作后,我至少有了我的应用程序的符号。在执行此操作时,我的应用程序名称旁边的小圆圈从黄色变为绿色,并且在重启仪器之间一直存在,与其他手动设置二进制文件的解决方案不同。
让我知道您能否告诉我如何为我的第三方框架获取所有这些。我将Carthage用于某些,其他则手动安装。还没有运气。
答案 6 :(得分:-1)
尝试打开XCode 3和他的管理器。并尝试从这个管理器添加一台设备到两台机器。
只需打开管理器并等待他处理。如果您看到“用于开发”按钮,请单击他。
有时,XCode 4无法真正为完整开发添加设备。