【问题标题】:iPhone Crash Catching Options on Published Apps已发布应用程序上的 iPhone 崩溃捕获选项
【发布时间】:2009-12-04 08:29:22
【问题描述】:

我想知道在生产应用程序中嵌入 CrashCatcher 框架 (http://code.google.com/p/plcrashreporter)。我编写了一些代码,可以将崩溃报告直接上传到服务器。而且,我这样做的目的是更快地访问崩溃报告,而无需通过 Apple/iTunes 来获取它们。

有谁知道嵌入 CrashCatcher 框架是否有可能通过应用程序审查流程?而且,如果确实如此,它是否可能会导致任何问题或与 Apple 在 iTunes/iTunesConnect 中内置的崩溃捕获机制发生冲突?

想法?

【问题讨论】:

    标签: iphone crash try-catch


    【解决方案1】:

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

    显然,CrashReporter(信号)和 Apple 的崩溃捕获(Mach 异常)使用的机制是不同的且相互兼容的。

    您了解 Apple 捕获崩溃的方式与 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 是否利用了不同的机制吗?

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

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

    对于崩溃报告,Mach 异常 API 的优势在于您可以简单地将未修改的异常直接传递给下一个处理程序。我很早就研究过实现这个,但是必要的 API 是私有的[1],所以决定注册标准的 UNIX 信号处理程序。如果您想了解更多关于 Mach 异常系统的信息,我建议您从 Mac OS X Internals 的第 9 章第 7 节开始。

    干杯, 兰登

    [1] Unity 3d 最近通过 exc_server() 运行了 mach 异常私有 API 的问题: http://blogs.unity3d.com/2009/11/14/unity-iphone-app-store-submissions-problem-solved/

    【讨论】:

    【解决方案2】:

    我在我的生产应用程序上使用了一项名为 Crittercism 的服务(在 Techcrunch 上看到过)。应用商店没有任何问题。

    www.crittercism.com

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我上面引用的互动是和作者的互动。
      【解决方案4】:

      应该没问题,但是您应该让用户选择是否发回崩溃报告。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-16
        • 1970-01-01
        • 2011-05-08
        • 2012-05-18
        • 2011-06-20
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多