0

My rubymotion app was rejected by the app store for the reason:

We found that your app crashed on iPad running iOS 7.1.1 and iPhone 5s running iOS 7.1.2

I have crittercism installed and the crash report looks something like below:

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

This log does not tell me exactly which line of code the error occurred on. How can I find that out? I don't have an iPhone 5S with 7.1.2 running on it so I can't check it on the device. Am I missing something obvious with the log report?

Kerni
  • 15,241
  • 5
  • 36
  • 57
Anthony
  • 33,838
  • 42
  • 169
  • 278
  • 1
    Didn't Apple send you crash logs with the rejection notice? Just symbolicate those logs. – rmaddy Jul 21 '14 at 23:08
  • I responded to their rejection notice saying the attachment of crash logs is missing but they have not responded back yet. In the mean time I was trying to decipher the logs from crittercism. – Anthony Jul 21 '14 at 23:12
  • To get a symbolicated stack trace you need to upload the dSYM to the service that was created when you build that exact version. – Kerni Jul 21 '14 at 23:18

1 Answers1

3

The reason why your crash report isn't symbolicating (the process by which those memory addresses are replaced with method names and line numbers) is because you likely don't have the right dSYM uploaded on crittercism.

In order to find the right dSYM I would dig through the archived image of your app you submitted to the app store. If you didn't keep a record of the build of the app you submitted to the app store you might be sunk because you can't recover it from the ipa you submitted (source) due to security concerns. But if you did you're in luck because the dSYM is easy to recover!

If you wanted an alternate method of symbolicating your crash report (that didn't involve uploading the dSYM to crittercism) I would suggest reading this post.

As a note for the future I would always archive your app whenever you do anything important, and thus want to save state, because from there you will be able to upload the ipa and recover the dSYM!

Community
  • 1
  • 1
Tsvi Tannin
  • 397
  • 1
  • 2
  • 8
  • Thanks a lot for explaining that! I did not keep the old build I sent to apple. However, I have not changed much code since then. Can I generate another build and upload the generated dsym to crittercism? Will that convert the crash report from previous build to symbolication? – Anthony Jul 21 '14 at 23:56
  • Unfortunately not :( Every time you build a new dSYM is created and unless you saved the state of the build you submitted to the app store it's impossible to recover. – Tsvi Tannin Jul 22 '14 at 00:54
  • If this answer was helpful would you mind accepting it? – Tsvi Tannin Jul 30 '14 at 18:24