【问题标题】:iOS crash doesn't tell which line or file the error occurred iniOS 崩溃不会告诉错误发生在哪一行或哪一个文件中
【发布时间】:2014-07-21 23:06:32
【问题描述】:

我的 ruby​​motion 应用被应用商店拒绝的原因:

我们发现您的应用在运行 iOS 7.1.1 和 iPhone 5s 的 iPad 上崩溃了 运行 iOS 7.1.2

我安装了 crittercism,崩溃报告如下所示:

20-Jul-14 03:23:54 PM   NoMethodError   
undefined method `[]' for nil:NilClass (NoMethodError)
1.4.0

0   App 0x00e42443 0x0005c000 + 14574659
1   App 0x00d9da59 0x0005c000 + 13900377
2   App 0x00e3fed3 0x0005c000 + 14565075
3   App 0x00e295d9 0x0005c000 + 14472665
4   App 0x00e285e1 0x0005c000 + 14468577
5   App 0x00e29079 0x0005c000 + 14471289
6   App 0x009c014f 0x0005c000 + 9847119
7   App 0x009c2575 0x0005c000 + 9856373

此日志没有准确告诉我错误发生在哪一行代码。我怎样才能知道呢?我没有运行 7.1.2 的 iPhone 5S,所以我无法在设备上检查它。我在日志报告中遗漏了一些明显的东西吗?

【问题讨论】:

  • Apple 没有向您发送带有拒绝通知的崩溃日志吗?只是象征那些日志。
  • 我回复了他们的拒绝通知,说缺少崩溃日志的附件,但他们还没有回复。与此同时,我试图从 crittercism 中破译日志。
  • 要获得符号化的堆栈跟踪,您需要将 dSYM 上传到构建该确切版本时创建的服务。

标签: ios app-store rubymotion


【解决方案1】:

您的崩溃报告没有符号化(将这些内存地址替换为方法名称和行号的过程)的原因是您可能没有在 crittercism 上上传正确的 dSYM。

为了找到合适的 dSYM,我会挖掘您提交给应用商店的应用的存档图像。如果你没有记录你提交到应用商店的应用程序的构建,你可能会因为安全问题而无法从你提交的 ipa (source) 中恢复它。但是,如果您这样做了,那么您很幸运,因为 dSYM 很容易recover

如果您想要一种替代方法来表示您的崩溃报告(不涉及将 dSYM 上传到 crittercism),我建议您阅读此post

作为对未来的说明,每当你做任何重要的事情时,我都会存档你的应用程序,因此想要保存状态,因为从那里你将能够上传 ipa 并恢复 dSYM!

【讨论】:

  • 非常感谢您的解释!我没有保留发送给苹果的旧版本。但是,从那以后我没有更改太多代码。我可以生成另一个构建并将生成的 dsym 上传到 crittercism 吗?这会将崩溃报告从以前的构建转换为符号化吗?
  • 不幸的是:(每次构建新的 dSYM 时都会创建,除非您保存了提交到应用商店的构建状态,否则无法恢复。
  • 如果这个答案有帮助你介意接受吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 2021-02-22
  • 2014-11-23
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多