2009-12-04 43 views
2

我想知道如何在生产应用程序中嵌入CrashCatcher框架(http://code.google.com/p/plcrashreporter)。我已经编写了一些代码,将直接上传到服务器的崩溃报告。而且,我的意图是更快地访问崩溃报告,而不需要通过Apple/iTunes来获取它们。iPhone Crash在发布的应用程序上捕捉选项

有谁知道嵌入CrashCatcher框架是否可能通过应用程序审查过程?而且,如果是这样,它是否可能导致与Apple在iTunes/iTunesConnect中内置的故障捕获机制有任何问题或冲突?

想法?

回答

3

我与CrashReporter,Landon(谢谢!)的作者之一通信,提供了一些额外的解释。显然,CrashReporter(信号)和Apple的碰撞捕捉(Mach例外)所使用的机制是截然不同的,并且是相互兼容的。

你明白苹果是如何捕获崩溃VS CrashReporter始终之间的区别是什么?我没有仔细研究过CrashReporter的源代码,但是从我读/记的它注册信号处理程序起作用?这是否准确?

右键 - PLCrashReporter注册标准的信号处理的信号,它的兴趣: http://code.google.com/p/plcrashreporter/source/browse/trunk/Source/PLCrashSignalHandler.m#41 http://code.google.com/p/plcrashreporter/source/browse/trunk/Source/PLCrashSignalHandler.m#223

你知道,如果苹果利用不同的机制?

Apple利用Mach异常处理程序在Mac OS X和iPhone上实现其崩溃报告;可以通过异常服务器(进程内或进程外部)处理异常处理程序 - 默认的内核提供的UNIX异常处理程序将异常处理映射到UNIX信号。

UNIX的异常处理程序在这里注册: http://fxr.watson.org/fxr/source/bsd/kern/bsd_init.c?v=xnu-1456.1.26#L999

对于崩溃报告,马赫例外API的好处是,你可以简单地直接传递到下一个处理未修改的例外。我调查了早期的实现,但必要的API是私有的[1],因此在注册标准的UNIX信号处理程序时得到了解决。如果您想了解更多关于Mach例外系统的信息,我建议从Mac OS X内核的第9章第7节开始。

干杯, 兰登

[1]团结3D最近运行通过exc_server()与马赫例外私有API的问题:我使用了一个名为Crittercism服务 http://blogs.unity3d.com/2009/11/14/unity-iphone-app-store-submissions-problem-solved/

+0

读者可能也想知道这个包含内置崩溃报告系统的应用程序模板项目.http://petersteinberger.com/2010/12/presenting-a-better-template-for-ios-apps-psiosapptemplate / – xyzzycoder 2011-02-17 09:49:28

0

创建该框架的人在商店中获得了大量应用程序。如果有人在生产应用中成功使用它,他们必须知道它。你应该尝试联系:http://www.plausiblelabs.com/

+0

我上面引用的交互是作者。 – xyzzycoder 2011-02-17 09:46:44

0

它应该没问题,但是你应该给用户关于你是否发回崩溃报告的选择。

当我们做到这一点时,我们预先填写了一封电子邮件,当应用程序在崩溃之后启动并使用适当的堆栈跟踪。用户可以选择发送或不发送。

相关问题