搞清楚

问题描述:

我在看我的红宝石运动应用程序(“习惯”)在TestFlight崩溃报告的RubyMotion应用一个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

我几乎和你一样困惑,但我至少可以发表我的假设?我假设你不知道哪一行代码触发了这一点,因为它看起来好像被捕获的错误本身不知道它的来源:nil:NilClass (NoMethodError)

对我来说,看起来方法active试图从尚未定义或没有特定内存的类中调用,因此是NilClass

我可能完全偏离这里,但这是我的见解。

+0

嗨,我不是要求帮忙搞清楚具体的错误 - 我想弄清楚如何让崩溃报告指向我的Ruby源文件中的正确行。 –

看起来你没有上传.dSYM文件和你的版本。

如果没有.dSYM文件,Testflight或任何其他iOS崩溃报告系统将无法连接编译代码和源文件之间的点。

要获得符号化的崩溃报告(包括文件名/行号),您需要上传.dSYM文件以及您的构建文件。

您可以查看TestFlight的文档手动或使用自己的桌面应用程序在这里包括.dSYM文件:

http://help.testflightapp.com/customer/portal/articles/829888-uploading-a-dsym-with-a-build-

也有RubyMotion的宝石,通过耙任务,为您处理that process

https://github.com/HipByte/motion-testflight

我一直很高兴地在我的项目中使用这个宝石。

+1

已报告的堆栈跟踪**已被符号化,但缺少任何有价值的信息。这没有帮助。 – Kerni

+0

是的,我已经上传了一个dSYM,但我想我可能需要通过testflight-motion gem来代替使用TestFlight App。我将来会这样做,但同时我想知道是否有任何方法可以理解当前的数据。例如。相对于这里的+163是多少?我是否有足够的信息返回到Ruby代码? –