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

Iphone 为什么atos命令无法找到iOS崩溃日志的符号?,iphone,ios,macos,terminal,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应用程序中崩溃的内存位

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

atos -arch armv7 -o ''/'appname.app.dSYM'
symbolicatecrash "appname_2011-08-03-111047_Test-iPhone.crash" "apname.app"
但是,当我尝试执行此操作时,命令失败并出现错误

atos无法加载文件的符号


什么可能导致此错误,我如何修复此错误?此外,这是从崩溃日志确定iOS应用程序中崩溃的内存位置的正确方法吗?

dSYM文件/dir必须与构建提交的应用商店构建时创建的文件/dir完全相同。即使是从完全相同的代码库构建的另一个,也无法与您的崩溃日志相匹配

一些潜在原因:

  • 你构建并测试了你的应用程序,一旦你认为它正常,你就保存了二进制文件(.app和.dSYM),然后你用appstore签名重新构建,忘记了存档.app和.dSYM的版本。现在,您的存档版本将与appstore版本中的崩溃不匹配
  • 您正试图使用源代码管理中新构建的.app和.dSYM进行符号化。您需要使用提交的相同.app和.dSYM
如果您的计算机上的任何位置都有正确的dSYM(并且安装了正确的iOS调试信息),那么Xcode将自动找到它,并在导入崩溃日志时创建一个符号化的崩溃日志副本。它使用spotlight来查找在构建时生成的唯一字符串(这就是为什么需要精确的版本来匹配它)。请注意,还需要存在匹配的.app文件


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

您是否使用Xcode“存档”选项部署应用程序?如果是这样,您可以将.crash文件放到Xcode organizer的“设备日志”部分。这会给出确切的行和方法Evgeny吗?我不这么认为,Rizwan可能想知道这些信息。注意:我删掉了我原始答案中的一些错误部分——AppLoader不会对你的二进制文件重新签名,你需要自己做。app store之前接受了企业签名的应用程序,并使用了匹配的公司名称,这让我觉得它是在重新签名,而事实并非如此。我想我现在陷入了这个过程。我可以摆脱我的处境,但很明显,是的,你的第一个重点是爆炸。