Xcode 5的管理器有一个视图,可以列出所有的崩溃日志。我们可以拖放这里的崩溃日志。但自从Xcode 6以来,我知道他们已经将设备移出了组织,并为相同的设置了一个新的窗口。但我没有找到一个地方,我查看崩溃日志,我拖拽在Xcode 5后上升到Xcode 6。有人知道答案吗?
当前回答
好的,我意识到你可以这样做:
在Xcode > Window > Devices中,选择连接的iPhone/iPad/etc左上角。 查看设备日志 所有日志
您可能在那里有很多日志,为了便于稍后找到导入的日志,您可以在此时删除所有日志……除非他们对你来说意味着金钱。或者除非你知道崩溃发生的确切时间点——无论如何都应该写在文件中……我很懒,所以我只是删除所有旧的日志(这实际上花了一段时间)。
3 a。确保日志文件的扩展名为.crash(而不是.txt或.ips)
只需将文件拖放到该列表中。这对我很管用。
其他回答
对我来说,.crash文件就足够了。没有。dsym文件和。app文件。
我在mac上运行了这两个命令,在那里我建立了存档,它工作了:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /yourPath/crash1.crash > /yourPath/crash1_symbolicated.crash
好的,我意识到你可以这样做:
在Xcode > Window > Devices中,选择连接的iPhone/iPad/etc左上角。 查看设备日志 所有日志
您可能在那里有很多日志,为了便于稍后找到导入的日志,您可以在此时删除所有日志……除非他们对你来说意味着金钱。或者除非你知道崩溃发生的确切时间点——无论如何都应该写在文件中……我很懒,所以我只是删除所有旧的日志(这实际上花了一段时间)。
3 a。确保日志文件的扩展名为.crash(而不是.txt或.ips)
只需将文件拖放到该列表中。这对我很管用。
写这个答案既是为了社区,也是为了我自己。
如果在事故报告中出现了问题,可以通过以下方法加以解决:
创建一个单独的文件夹,复制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。
对崩溃日志进行符号化的最简单方法:
在IPA构建过程中保存组织者的xcarchive文件,以备将来使用。 当崩溃发生时,从受影响的设备上收集崩溃日志。扩展名应该是.crash。如果崩溃日志是.ips格式,只需将其重命名为.crash。 双击存储路径中的xcarchive,使其出现在管理器中(如果尚未出现)。 打开xcode窗口->设备和模拟器->查看设备日志->所有日志->拖放.crash文件。
等待5秒。砰!堆栈跟踪中的应用程序调用将被符号化! 不过,你仍然可以看到很多符号!这些是内部库和框架调用。
这是最简单的一种方法,我已经试过了!
确保你的Xcode应用名称不包含任何空格。这就是它对我不起作用的原因。所以/应用程序/ Xcode。/Applications/Xcode应用程序不能工作。
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- Ios模拟器:如何关闭应用程序
- 准备好开发人员ID的macOS安装程序包
- 创建配置文件失败
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Swift:声明一个空字典
- 在成功提交我的应用程序后,“太多符号文件”
- 首先添加一个UIView,甚至是导航栏
- 复制并重命名Xcode项目和相关文件夹
- 我如何改变UIButton标题颜色?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- Xcode 4挂在“附加到(应用程序名称)”