Xcode 5的管理器有一个视图,可以列出所有的崩溃日志。我们可以拖放这里的崩溃日志。但自从Xcode 6以来,我知道他们已经将设备移出了组织,并为相同的设置了一个新的窗口。但我没有找到一个地方,我查看崩溃日志,我拖拽在Xcode 5后上升到Xcode 6。有人知道答案吗?
当前回答
使用Xcode有一个更简单的方法(不需要使用命令行工具,一次查找一个地址)
Take any .xcarchive file. If you have one from before you can use that. If you don't have one, create one by running the Product > Archive from Xcode. Right click on the .xcarchive file and select 'Show Package Contents' Copy the dsym file (of the version of the app that crashed) to the dSYMs folder Copy the .app file (of the version of the app that crashed) to the Products > Applications folder Edit the Info.plist and edit the CFBundleShortVersionString and CFBundleVersion under the ApplicationProperties dictionary. This will help you identify the archive later Double click the .xcarchive to import it to Xcode. It should open Organizer. Go back to the crash log (in Devices window in Xcode) Drag your .crash file there (if not already present) The entire crash log should now be symbolicated. If not, then right click and select 'Re-symbolicate crash log'
其他回答
确保你的Xcode应用名称不包含任何空格。这就是它对我不起作用的原因。所以/应用程序/ Xcode。/Applications/Xcode应用程序不能工作。
写这个答案既是为了社区,也是为了我自己。
如果在事故报告中出现了问题,可以通过以下方法加以解决:
创建一个单独的文件夹,复制Foo。app和Foo.app.dSYM从对应的.xcarchive文件夹中。同时将.crash报告复制到文件夹中。 在TextEdit或其他地方打开崩溃报告,转到Binary Images:部分,并复制第一个地址(例如0xd7000)。 CD放入文件夹。现在可以执行如下命令: xrun atos -o Foo。app/Foo -arch arm64 -l 0xd7000 0x0033f9bb .使用实例
这将表示地址为0x0033f9bb的符号。请确保为-arch选项选择正确的值(可以从Binary Images:部分中的第一行获得,或从硬件模型:在崩溃报告和应用程序支持的arch中计算出来)。
你也可以直接从崩溃报告中复制必要的地址(例如线程调用堆栈)到一个文本文件中(在TextEdit中,按住Option并选择必要的文本块,或者复制并剪切),得到如下内容:
0x000f12fb
0x002726b7
0x0026d415
0x001f933b
0x001f86d3
现在你可以将它保存到一个文本文件中,例如addr.txt,并运行以下命令:
xcrun atos -o Foo.app/Foo -arch arm64 -l 0xd7000 -f addr.txt
这将为所有地址一次提供一个很好的符号化。
P.S.
在执行上述操作之前,值得检查是否正确设置了所有内容(因为atos会很高兴地为基本上任何提供的地址报告一些内容)。
要进行检查,请打开崩溃报告,并转到线程0的调用堆栈的末尾。从末尾开始列出你的应用程序的第一行(通常是第二行),例如:
34 Foo 0x0033f9bb 0xd7000 + 2525627
应该是main()调用。如上所述,将地址(在本例中为0x0033f9bb)标记为符号应该确认这确实是main(),而不是某个随机方法或函数。
如果地址不是main(),检查你的加载地址(-l选项)和arch (-arch选项)。
P.P.S.
如果上面因为bitcode而不能工作,请从iTunes Connect下载dSYM,从dSYM (Finder > Show Package Contents)中提取可执行二进制文件,将其复制到目录中,并使用它(即Foo)作为atos的参数,而不是Foo.app/Foo。
我努力有崩溃报告符号化通过atos,但我不愿意,因为这个过程似乎很麻烦,但我发现崩溃报告在Xcode->窗口->组织者->崩溃(在左侧菜单)Xcode会自动下载崩溃日志,并将自动符号化,从那里你可以很容易地找到崩溃的原因。
对崩溃日志进行符号化的最简单方法:
在IPA构建过程中保存组织者的xcarchive文件,以备将来使用。 当崩溃发生时,从受影响的设备上收集崩溃日志。扩展名应该是.crash。如果崩溃日志是.ips格式,只需将其重命名为.crash。 双击存储路径中的xcarchive,使其出现在管理器中(如果尚未出现)。 打开xcode窗口->设备和模拟器->查看设备日志->所有日志->拖放.crash文件。
等待5秒。砰!堆栈跟踪中的应用程序调用将被符号化! 不过,你仍然可以看到很多符号!这些是内部库和框架调用。
这是最简单的一种方法,我已经试过了!
使用Xcode有一个更简单的方法(不需要使用命令行工具,一次查找一个地址)
Take any .xcarchive file. If you have one from before you can use that. If you don't have one, create one by running the Product > Archive from Xcode. Right click on the .xcarchive file and select 'Show Package Contents' Copy the dsym file (of the version of the app that crashed) to the dSYMs folder Copy the .app file (of the version of the app that crashed) to the Products > Applications folder Edit the Info.plist and edit the CFBundleShortVersionString and CFBundleVersion under the ApplicationProperties dictionary. This will help you identify the archive later Double click the .xcarchive to import it to Xcode. It should open Organizer. Go back to the crash log (in Devices window in Xcode) Drag your .crash file there (if not already present) The entire crash log should now be symbolicated. If not, then right click and select 'Re-symbolicate crash log'
推荐文章
- 如果模态ViewController演示样式为UIModalPresentationFormSheet, iPad键盘将不会解散
- 在UITableView中检测哪个UIButton被按下了
- 为iOS模拟器构建,但链接框架'****.framework'是为iOS构建的
- iOS更新后保留旧的启动屏幕和应用程序图标
- 如何象征崩溃日志Xcode?
- 我如何得到一个plist作为一个字典在Swift?
- Xcode - ld:没有为- lpods找到库
- 自动调整掩码大小编程vs接口生成器/ xib / nib
- 我如何输入RGB值到接口生成器?
- NSUserDefaults -如何判断一个键是否存在
- Xcode UI测试用例中的延迟/等待
- 裁剪一个UIImage
- 在Xcode单元测试中使用@可测试时“没有这样的模块”
- 这个应用程序是否使用广告标识符(IDFA)?—AdMob 6.8.0
- iOS 7: UITableView显示在状态栏下