已发布应用程序上的iPhone崩溃捕获选项

已发布应用程序上的iPhone崩溃捕获选项,iphone,crash,try-catch,Iphone,Crash,Try Catch,我想知道如何将CrashCatcher框架()嵌入到生产应用程序中。我已经编写了一些代码,可以将崩溃报告直接上传到服务器。而且,我的目的是更快地访问崩溃报告,而不需要通过Apple/iTunes获取它们 有人知道嵌入CrashCatcher框架是否可能通过应用程序审查过程吗?而且,如果是这样的话,它是否有可能与苹果在iTunes/iTunesConnect中内置的崩溃捕捉机制产生任何问题或冲突 想法?创建框架的人在商店里得到了大量的应用程序。如果有人在生产应用程序中成功地使用它,他们必须了解它。

我想知道如何将CrashCatcher框架()嵌入到生产应用程序中。我已经编写了一些代码,可以将崩溃报告直接上传到服务器。而且,我的目的是更快地访问崩溃报告,而不需要通过Apple/iTunes获取它们

有人知道嵌入CrashCatcher框架是否可能通过应用程序审查过程吗?而且,如果是这样的话,它是否有可能与苹果在iTunes/iTunesConnect中内置的崩溃捕捉机制产生任何问题或冲突


想法?

创建框架的人在商店里得到了大量的应用程序。如果有人在生产应用程序中成功地使用它,他们必须了解它。您应该尝试联系:

应该可以,但是您应该让用户选择是否发回崩溃报告


当我们这样做时,我们在应用程序崩溃后启动时预先填充了一封电子邮件,其中包含适当的stacktrace。用户可以选择是否发送

我与《CrashReporter》的作者之一Landon(谢谢!)进行了通信,以进一步澄清这一点

显然,CrashReporter(信号)和苹果的崩溃捕捉(马赫例外)所使用的机制是不同的,并且相互兼容

你了解苹果公司与CrashReporter公司之间的区别吗?我没有仔细查看CrashReporter源代码,但据我所读/记忆,它是通过注册信号处理程序工作的?这准确吗

右——PLCrashReporter为其感兴趣的信号注册标准信号处理程序:

你知道苹果是否利用了不同的机制吗

苹果利用Mach异常处理程序在MacOSX和iPhone上实现崩溃报告;mach异常可以由异常服务器(进程内或进程外)处理——默认内核提供的UNIX异常处理程序将mach异常映射到UNIX信号

UNIX异常处理程序在此处注册:

对于崩溃报告,Mach exception API的优点是您可以简单地将未修改的异常直接传递给下一个处理程序。我很早就研究过如何实现它,但必要的API是私有的[1],因此决定注册标准的UNIX信号处理程序。如果你想阅读更多关于Mach异常系统的内容,我建议你从MacOSX内部的第9章第7节开始

干杯, 兰登

[1] Unity 3d最近通过exc_server()运行了mach异常专用API问题:

我在我的生产应用程序上使用了一种叫做Critercism(在Techcrunch上看到)的服务。应用商店没有任何问题


我上面引用的是与作者的互动。读者可能还想了解这个应用程序模板项目,它包括一个内置的崩溃报告系统。