首页 文章

Symbolicate adhoc iphone应用程序崩溃

提问于
浏览
13

我无法设法使我的代码符号化...我读了“下面”的部分:

给定崩溃报告,匹配的二进制文件及其.dSYM文件,符号化相对容易 . Xcode Organizer窗口有一个选项卡,用于显示当前所选设备的崩溃报告 . 您可以在此选项卡中查看外部收到的崩溃报告 - 只需将它们放在适当的目录中即可 . 这与第一部分中描述的Mac OS X目录相同 . 您连接的设备无关紧要,但放置崩溃报告的目录必须是系留和选定设备的目录 . 没有必要将二进制文件和.dSYM文件放在任何特定位置 . Xcode使用Spotlight和UUID来定位正确的文件 . 但是,有必要将两个文件放在同一目录中,并且此目录是Spotlight索引的目录 . 您的主目录中的任何位置都应该没问题 .

但它对我不起作用......这就是我所做的:

  • 我打开了xcode组织器,我的iphone设备有崩溃日志

  • App和dsym文件位于我桌面上的xcode项目中

其余的都应该是自动的,对吗?但崩溃日志尚未象征化......

任何评论欢迎 .

干杯 .

高堤耶 .

3 回答

  • 8

    几天来我一直在苦苦挣扎,终于想通了 . 我无法从我安装到手机的任何存档应用程序中获取符号化日志 . 对我来说,这是构建设置的一个问题,虽然我确实注意到它能够在我按照这些步骤后对来自某些旧版本的日志进行符号化 . YMMV可能因旧版本的崩溃日志而异 . 在iOS 4.3.1上的Xcode 4.0.1中执行这些步骤之后,我能够获得符号化日志 .

    在Xcode Project导航器中,单击您的项目,然后单击Build Settings . 归档应用程序时,Xcode默认使用Release配置 . 您只需要为Release配置设置以下值,因此您必须展开尚未展开的任何设置,以允许您在每个配置的基础上进行设置 .

    确保为Release配置设置了这些值:

    • 生成调试符号:是的

    • 调试信息格式:带有dSYM文件的DWARF

    • 部署后处理:是的

    • 剥离链接产品:是的

    • 使用单独的条带:是的

    • 复制期间剥离调试符号:否

    • 条形样式:所有符号

    设置完成后,存档并重新安装您的应用程序 . 应该正确地符号化从生成的存档生成的新崩溃报告 . 对我来说,许多旧的崩溃报告在遵循这些步骤后也是正确的象征,尽管我不确定如果构建非常不同,结果会有多准确 .

    作为参考,我在研究了这个页面后想出了这一切:http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

    我还找到了这个页面,如果你想弄清楚特定的构建设置是什么的话,这很方便:http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

    希望这可以帮助!

  • 13

    为了表示崩溃报告,请尝试以下方法:

    (a)找到符号符(/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash)

    (b)打开终端并拖动此文件(以便正确复制路径)

    (c)运行/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatorcrash .crash .app这样的命令(提及崩溃报告的整个路径和app文件) )

    (d)将出现符号化的崩溃报告

  • 5

    从苹果分析崩溃报告的步骤:

    • 复制已推送到appstore的发行版.app文件,即发布时创建的.dSYM文件,崩溃报告从APPLE接收到文件夹 .

    • OPEN终端应用程序并转到上面创建的文件夹(使用CD命令)

    • atos -arch armv7 -o'(此处为.app文件名)'/'( . dSYM filename here)'(崩溃报告中发生崩溃的内存位置) . 内存位置应该是应用程序根据报告崩溃的位置 .

    例如:atos -arch armv7 -o'app name.app'/'app name'0x0003b508

    这将显示导致崩溃的确切行,方法名称 .

    谢谢

相关问题