为什么atos命令无法为我的iOS崩溃日志找到符号?

时间:2011-08-06 06:48:42

标签: iphone ios macos terminal

我正在尝试诊断iOS应用程序的崩溃。这里的其他人建议使用atos命令来执行此操作,如以下命令:

atos -arch armv7 -o ''/'appname.app.dSYM'
symbolicatecrash "appname_2011-08-03-111047_Test-iPhone.crash" "apname.app"

但是,当我尝试此操作时,命令失败并显示错误

  

atos无法加载文件的符号

可能导致此错误的原因,我该如何解决?另外,这是从崩溃日志中确定iOS应用程序中崩溃的内存位置的正确方法吗?

1 个答案:

答案 0 :(得分:3)

dSYM文件/目录必须是构建提交的应用商店版本时创建的完全相同的文件。即使是使用完全相同的代码库构建的另一个也不会与崩溃日志匹配。

一些可能的原因:

  • 你构建并测试了你的应用程序,一旦你认为它很好,你保存了二进制文件(.app和.dSYM),然后你用appstore签名重建,忘了存档那个版本的.app和.dSYM。现在,您的存档版本与appstore版本的崩溃不匹配。
  • 您正尝试使用源代码控制中新建的.app和.dSYM进行符号化。您需要使用已提交的.app和.dSYM。

如果您的计算机上有任何正确的dSYM(并且安装了正确的iOS调试信息),则Xcode会自动找到它并在导入崩溃日志时创建崩溃日志的符号副本。它使用聚光灯来查找在构建时生成的唯一字符串(这就是为什么需要匹配的确切版本)。请注意,匹配的.app文件也需要存在。

最佳做法是构建和测试发布版本,然后重新签名以进行提交(而不是为应用商店签名提交单独的版本)。这样你就可以在正确的地方保存正确的.app和.dSYM。我将它们放在源代码管理中并用版本号标记它。