如何对苹果以.txt格式而非.crash格式接收到的崩溃报告进行符号化处理

18

我的应用被苹果拒绝,并且我收到了以 .txt 格式而不是 .crash 格式呈现的崩溃报告。

我该如何解析或查看这个崩溃报告?


这里也是一样,所有其他的SO帖子都在谈论.crash文件。我似乎无法将iTunes Connect提供的.txt崩溃日志文件拖放到Xcode的“查看设备日志”控制台中...@bably你有找到答案吗? - alexisSchreier
1
@alexisSchreier 只需手动将 .txt 扩展名更改为 .crash,然后保存文件。.txt 文件将被转换为 .crash,然后您可以继续阅读崩溃报告。希望这有所帮助。 - bably
谢谢你的建议。我尝试了这个方法,但是 Xcode 仍然无法自动符号化文件,所以我不得不按照苹果的指南手动使用 atos 命令进行符号化。它确实起作用,只是需要逐行操作,有点耗时... https://developer.apple.com/library/content/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS - alexisSchreier
5个回答

50

当您收到作为 .txt 文件的崩溃报告时,请按照以下步骤执行:

  1. 将文件扩展名 .txt 更改为 .crash(例如将 mycrash.txt 更改为 mycrash.crash)。

  2. 在桌面上创建一个新文件夹,并将 mycrash.crash 文件复制到新创建的文件夹中。

  3. 复制 .dSYM 文件:

    • 更新:从 appstoreconnect 活动中下载所有 DSYMs,它们会以它们的 UUID 命名
    • 解压 DSYMs,然后按照下面定义的脚本复制 App 和 Sybolicate 脚本: https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/[appID]/activity/ios/builds/[version]/[build]/details
  4. 通过导航菜单在 Xcode 中打开 Archives 窗口:xcode -> window -> orgnizerxcode -> product -> Archive

    • 选择您应用程序的任何档案,右键单击它,然后选择 Show in Finder

    • 右键单击 appname.xcarchive,然后选择 Show Package Contents

    • 打开 dSYMs 文件夹,获取 .dSYM 文件,并将其粘贴到新创建的文件夹中。

    • 从相同的 xcarchive 中复制 .app 文件到新文件夹中。

  5. 进入路径 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/

    • 使用 Finder 快捷键(⇧ + ⌘ + G)并粘贴路径。
  • symbolicatecrash文件复制到新创建的文件夹中。

    该文件夹现在应该有:
    • mycrash.crash
    • myapp.app
    • myapp.app.dSYM
    • symbolicatecrash
  • 打开终端,导航至您的文件夹路径,然后运行以下命令:
    $ export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

  • 然后像这样对您的崩溃文件运行符号化命令:
    $ ./symbolicatecrash mycrash.crash > symbolicated.crash


  • 1
    查看“显示包内容”时,任何地方都没有 .app 文件。 - Ronald
    4
    第三点和第四点有些混淆。为什么我们要从两个位置读取dSYM文件? - Martin Berger
    原因是,有些应用程序包含位码,而有些则不包括。这应该在答案中进行解释。如果您的应用程序包括位码,则苹果将在发送给客户之前重新构建它。重新构建会更改dSYMs,在这些情况下,您必须在继续之前下载最新版本。 - yspreen

    12
    1. 将文件扩展名 .txt 修改为 .crash
    2. 确保您的设备已连接。
    3. 转到 xcode -> 窗口 -> 设备和模拟器 -> 查看设备日志。
    4. 将崩溃日志文件拖动到该窗口左侧。
    5. 现在,您可以查看日志以及发生的事件。

    3
    确保已插入设备,以获取查看设备日志选项;尽管比所接受的答案更简单,但这很容易实现。 - gadu
    3
    没有进行符号化处理。 - mcatach

    4
    无法添加评论到Shakti的答案中,但是我在5和6步骤遇到了问题,因为它抱怨没有指定DEVELOPER_DIR。

    通过一些搜索之后,我发现第5步应该是:

    5. 现在打开终端,进入你的文件夹路径,然后输入以下内容

    export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

    所以,“export”也是一个关键字和命令的一部分,以防其他人遇到相同的问题。


    4

    这对我有用,也可能会帮助其他人

    苹果给出的崩溃日志是以.txt格式呈现的,没有符号化。

    **

    在连接设备的情况下

    **

    • 下载“.txt”文件,将扩展名更改为“.crash” enter image description here
      • 从Xcode的窗口选项卡中打开“设备和模拟器”
      • 选择设备并选择设备日志
      • 将“.crash”文件拖放到设备日志窗口中

    enter image description here

    我们将能够在那里看到符号化的崩溃日志

    请参阅此链接了解有关符号化(Symbolicating)崩溃日志的更多详细信息:Crash logs


    不起作用。这是一个简单的解决方案,应该可以工作,但它却不起作用。 - Martin Berger
    确保使用开发时所用的相同iPad。令人惊讶的是,这对我有效。如果有人在符号化日志方面遇到困难,他们可以尝试使用这种方法。 - Suraj K Thomas
    我已经按照相同的解决方案,成功找到了源代码中的视图控制器名称和方法名称,而不是十六进制代码。感谢您提供的解决方案。 - SURESH SANKE

    -2
    通过在组织者中拖动.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
    

    按回车并检查您所输入的路径。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接