我正在为我的 Ruby Motion 应用程序(“习惯”)在 TestFlight 中查看崩溃报告,它给了我这个:
undefined method `active' for nil:NilClass (NoMethodError)
2 Habits 0x004bd2f3 rb_rb2oc_exc_handler + 163
3 Habits 0x0003a38b main (main.mm:20)...
如何确定哪一行 Ruby 代码触发了这个错误?
我正在为我的 Ruby Motion 应用程序(“习惯”)在 TestFlight 中查看崩溃报告,它给了我这个:
undefined method `active' for nil:NilClass (NoMethodError)
2 Habits 0x004bd2f3 rb_rb2oc_exc_handler + 163
3 Habits 0x0003a38b main (main.mm:20)...
如何确定哪一行 Ruby 代码触发了这个错误?
遇到同样的问题......看看这个答案:
https://stackoverflow.com/a/4954949/1740868
而这篇博文:
http://nofail.de/2013/09/omg-apple-rejected-my-app/
基本上你会做这样的事情:
$ xcrun atos -arch armv7 -o Habits.app 0x004bd2f3
看起来您尚未将 .dSYM 文件与构建一起上传。
如果没有 .dSYM 文件,Testflight 或任何其他 iOS 崩溃报告系统将无法将编译代码和源文件之间的点联系起来。
要获得符号化的崩溃报告(包括文件名/行号),您需要上传一个 .dSYM 文件以及您的构建文件。
您可以在此处手动或使用其桌面应用程序查看 TestFlight 的文档以包含 .dSYM 文件:
http://help.testflightapp.com/customer/portal/articles/829888-uploading-a-dsym-with-a-build-
还有一个 RubyMotion gem可以通过 rake 任务为您处理该过程:
https://github.com/HipByte/motion-testflight
我一直很高兴在我的项目中使用这个 gem。
我几乎和你一样困惑,但我至少可以发表我的假设?我假设你无法弄清楚是哪一行代码触发了这个,因为它看起来好像被捕获的错误本身并不知道它的来源:nil:NilClass (NoMethodError)
.
对我来说,该方法似乎active
试图从尚未定义或没有特定内存的类中调用,因此是NilClass
.
我可能完全不在这里,但这是我的见解。