2014-09-24 68 views
12

我以前用Xcode 5.1.1中的崩溃报告直接表示,因为在Organizer的Devices部分有“Symbolicate & Re-symbolicate”。但升级到Xcode 6.1后,我发现既没有符号也没有resymbolicate选项来查看崩溃日志。我很困惑。怎么做?iOS X与Symbolicate的崩溃6.11

此前我曾经与iTunes同步设备,并从~/Library/Logs/CrashReporter/MobileDevice查看崩溃。点击任何崩溃将打开与设备(Xcode),然后符号。但现在,它打开了控制台,并没有选择象征。 Xcode 6.1是否有这样的选项?

+1

请不要使用'code formatting'来强调。这是代码的意思。 – dandan78 2014-09-24 07:21:42

回答

25

步骤手动symbolicate崩溃日志在Xcode 6

  1. 如果您发布之前归档发布版本,然后转到步骤2。否则存档最终发布版本(无需更改任何代码)。

  2. 要找到你的存档文件,开放式的组织者 - >选择您的项目 - >选择新的存档文件 - >右键点击了它 - >选择“在Finder中显示”

  3. 右键单击“*。 xcarchive”文件,并选择‘显示包内容’选项,然后去产品目录 - >应用程序文件夹 - > YourAppName.app(.app扩展名被隐藏在一些机器)

  4. 复制并粘贴您的.app文件中不同的位置。将崩溃日志文件也放在同一个文件夹中。打开终端应用程序,然后转至您粘贴,通过“CD”命令

  5. 的文件夹,并用你的崩溃地址

xcrun ATOS -o YourAppName输入端子以下命令。应用程序/ YourAppName -arch ARMv7的-l 0xbd000 0x0013f745

注意:如果上述命令不起作用,则将“armv7更改为armv7s”并检查。

如:崩溃日志这个样子的,你需要得到崩溃的地址,并把它上面的命令

3 CoreGraphics     0x266814d3 CGPathAddLineToPoint + 171 
4 YourAppName      0x00140a8b 0xbd000 + 539275 
5 YourAppName      0x0013f745 0xbd000 + 534341 
6 Foundation      0x27152d6b __NSThreadPerformPerform + 383 
7 CoreFoundation     0x2640a375 
+0

你能告诉我如何从移动设备中进行符号化...我备份了移动设备,然后〜/ Library/Logs/CrashReporter/MobileDevice->打开崩溃,它会打开Console.It不会显示如何从那里进行符号化。 – Honey 2014-11-11 09:55:23

+0

@Honey Console不会象征你崩溃日志。尝试终端中的命令,我在步骤5中提到并将您的崩溃地址(它在您的崩溃日志中)例如:“xcrun atos -o YourAppName.app/YourAppName -arch armv7 -l <​​您的崩溃地址>”。请参阅我在回答中提到的具有崩溃地址的示例崩溃日志的4行和5行。 – Dax 2014-11-13 08:28:52

+0

@达克斯,如何找到你在步骤5中提到'0xbd000 0x0013f745'值从我的崩溃报告? – IKKA 2015-02-26 09:30:21

4

只需连接iOS设备,打开设备>设备>查看设备日志,然后拖动并将崩溃拖放到该设备的崩溃文件列表。崩溃将被添加到列表中,并且只要存在原始存档,就会被符号化。

+0

只要确保你知道它需要一点时间,Xcode做了一个糟糕的工作,告诉你它正在处理文件。你需要等待5-10秒才能完成。 – 2016-07-07 06:09:17

+1

我想知道,有没有人得到和我一样的结果?只有标准库函数是符号化的,我的应用程序的方法仍然是十六进制符号,如“0x1000f8258 0x10009c000 + 377432”。我有一个在Xcode组织者应用程序的存档。我尝试了@Dax的建议,我可以看到比hex更有意义的东西,但我仍然不明白为什么Xcode无法自动执行此操作,也许我做错了什么? – 2016-08-24 10:06:44

0

连接iOS设备,打开设备(shift命令2),选择设备并点击'查看设备日志'。在左侧栏上,会出现崩溃日志。选择一个你感兴趣的人。

只要你已经存档崩溃时在设备上运行的版本,崩溃日志将在几秒钟后自动被符号化。如果没有,右键单击崩溃日志并选择'重新符号日志'。

14

插件可用于产品菜单下的Xcode。这个插件可以通过Alcatraz package manager或直接下载from github

这个插件内部集成了一个shell脚本,它为运行手动崩溃符号的以下命令进行设置。

  1. 设置别名symbolicatecrash.pl perl脚本

别名 symbolicatecrash ='/应用/ Xcode.app /内容/开发/平台/ iPhoneOS.platform /开发/库/ PrivateFrameworks /DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash”

  • 为了找到symbolicatecrash,应该把它从别名不同以上:
  • 找到/Applications/Xcode.app -name symbolicatecrash型的F

  • 设置DEVELOPER_DIR变量:
  • 出口DEVELOPER_DIR ='/ Applications/Xcode.app/Contents/Developer'

    1. 随着的dSYM碰撞可以是symbolicates为:

    symbolicatecrash /path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM 。

    +0

    插件不再适用于XCode 7及更高版本。完全可用的东西在这里:http://stackoverflow.com/a/17747804/1506363 – 2016-05-04 06:38:09

    +1

    我的路径是'/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/资源/ symboliccrash'使用** Xcode 7.3 **时。 – testing 2016-06-09 12:38:34