如何象征从 Apple 收到的以 .txt 格式而不是 .crash 格式的崩溃报告
Posted
技术标签:
【中文标题】如何象征从 Apple 收到的以 .txt 格式而不是 .crash 格式的崩溃报告【英文标题】:How to symbolicate crash report from Apple received in .txt format not .crash format 【发布时间】:2016-11-08 05:47:24 【问题描述】:我的应用被 Apple 拒绝了,我收到了 .txt 格式而不是 .crash 格式的崩溃报告。
如何符号化或阅读崩溃报告?
【问题讨论】:
同样,所有其他 SO 帖子都讨论 .crash 文件。我似乎无法将 iTunes Connect 提供的 .txt 崩溃日志文件拖放到 Xcode 中的“查看设备日志”控制台中……@bably 你找到答案了吗? @alexisSchreier 只需手动将 .txt 扩展名更改为 .crash 然后保存文件。 .txt 文件然后被转换为 .crash,您可以继续阅读崩溃报告。希望这会有所帮助。 感谢您的提示。我试过了,但 Xcode 仍然不会自动符号化文件,所以我必须按照苹果指南使用atos
命令手动完成。它只需要一点时间就可以逐行完成...developer.apple.com/library/content/technotes/tn2151/…
【参考方案1】:
当您获得 .txt 文件形式的崩溃报告时,只需遵循这些 步骤:
将文件扩展名.txt
更改为.crash
(例如mycrash.txt
更改为mycrash.crash
)。
在桌面创建一个新文件夹并将mycrash.crash
文件复制到
新创建的文件夹。
复制 .dSYM 文件:
更新:从 appstoreconnect 活动下载所有 DSYM - 它们使用 UUID 正确命名 解压缩 DSYM,然后复制如下定义的 App 和 Sybolicate 脚本:https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/[appID]/activity/ios/builds/[version]/[build]/details
通过导航菜单在 Xcode 中打开存档窗口:xcode -> window -> orgnizer
或 xcode -> product -> Archive
:
选择您应用的任何档案 右键单击它,然后选择在 Finder 中显示
右击appname.xcarchive
并选择显示包内容。
打开 dSYMs 文件夹并获取 .dSYM 文件,并将其粘贴到新创建的文件夹中。
将 .app 文件从同一个 xcarchive 复制到新文件夹。
转到路径/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
将symbolicatecrash
文件复制到新创建的文件夹中。
打开终端,导航到您的文件夹路径,然后运行:
$export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
然后在崩溃时运行 symbolicate 命令,如下所示:
$./symbolicatecrash mycrash.crash > symbolicated.crash
【讨论】:
查看“显示包内容”时,任何地方都没有 .app 文件。 第 3 点和第 4 点令人困惑。为什么我们要从两个位置读取 dSYM? 原因是,有些应用程序包含位码,有些则没有。这应该在答案中解释。如果您的应用程序包含位码,Apple 将在将其发送给客户之前对其进行重建。重建会更改 dSYM,因此在这些情况下,您必须先下载最新版本才能继续。【参考方案2】:-
将文件扩展名.txt更改为.crash
确保您的设备已插入。
转到 xcode -> 窗口 -> 设备和模拟器 -> 查看设备日志。
将崩溃日志的文件拖到该窗口的左侧。
现在您可以查看日志以及那里发生的情况。
【讨论】:
确保您已插入设备以获取查看设备日志的选项;这比接受的答案要容易得多 没有符号化【参考方案3】:无法对 Shakti 的回答添加评论,但我在第 5 步和第 6 步遇到问题,因为它抱怨未指定 DEVELOPER_DIR。
后来我在谷歌上搜索了一下,发现第 5 部分应该是:
5 现在打开终端 cd 你的文件夹路径然后输入这个
导出 DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
所以,“export”也是一个关键字和命令的一部分,以防万一其他人遇到同样的问题。
【讨论】:
【参考方案4】:它对我有用,也可以帮助其他人
Apple 为您提供 .txt 格式的崩溃日志,这是非符号化的
**
连接设备
**
下载“.txt”文件,将扩展名改为“.crash” 在 Xcode 的窗口选项卡中打开设备和模拟器 选择设备并选择设备日志 将 .crash 文件拖放到设备日志窗口
我们将能够在那边看到符号化的崩溃日志
有关符号化Crash logs 的更多详细信息,请参阅链接
【讨论】:
不起作用。这是一个简单的解决方案,应该可以工作,但它不起作用。 确保您使用用于开发的相同 iPad。令人惊讶的是它对我有用。如果有人在符号化日志上苦苦挣扎,他们可以试试这个方法 我遵循了相同的解决方案,我可以找到源代码视图控制器名称和方法名称,而不是十六进制代码。感谢您的解决方案。【参考方案5】:在管理器中拖动 .crash 文件并不完全代表我的崩溃。所以我尝试了另一种方法。
如果存档的版本已经在您的计算机上。然后你不需要给 .app 和 dsym 文件。只需在终端中运行以下命令即可。
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
回车
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Your/Crash/File/Path/c.crash > /Your/Symbolicated/Crash/File/Path/c.crash
回车并检查您提供的路径。
【讨论】:
以上是关于如何象征从 Apple 收到的以 .txt 格式而不是 .crash 格式的崩溃报告的主要内容,如果未能解决你的问题,请参考以下文章
当 iPhone 从配对的 Apple Watch 收到消息时本地通知不会取消(有时)
python如何把txt中的数字提取出来放到list中,要求格式是int,而不是原始的str?