通过HockeyApp更新应用后启动时,应用崩溃 [英] App crashes when launching after updating app via HockeyApp

查看:97
本文介绍了通过HockeyApp更新应用后启动时,应用崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是CrashReporter信息:

Here's the CrashReporter information:

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   libsystem_kernel.dylib          0x347c2848 __kill + 8
1   [My Application]                0x0002ec44 fatal_signal_handler (PLCrashSignalHandler.m:98)
2   libsystem_c.dylib               0x37518522 _sigtramp + 42
3   [My Application]                0x0003040a uncaught_exception_handler (PLCrashReporter.m:136)
4   CoreFoundation                  0x37663984 __handleUncaughtException + 68
5   libobjc.A.dylib                 0x334082ca _objc_terminate + 122
6   libc++abi.dylib                 0x37f473be safe_handler_caller(void (*)()) + 70
7   libc++abi.dylib                 0x37f4744a std::terminate() + 14
8   libc++abi.dylib                 0x37f4881e __cxa_rethrow + 82
9   libobjc.A.dylib                 0x3340822e objc_exception_rethrow + 6
10  CoreFoundation                  0x375b9556 CFRunLoopRunSpecific + 398
11  CoreFoundation                  0x375b93b6 CFRunLoopRunInMode + 98
12  UIKit                           0x3354dda4 -[UIApplication _run] + 544
13  UIKit                           0x3354b05a UIApplicationMain + 1074
14  [My Application]                0x00002a9a main (main.m:54)
15  [My Application]                0x00002a58 0x1000 + 6744

如果我删除了该应用程序,然后从头开始下载更新的版本,则效果很好...

If I delete the app and then download the updated version from scratch it works fine...

推荐答案

这是由于Object-C异常被抛出,被运行循环捕获并重新抛出而导致的,导致回溯丢失了.

This is caused by an Objective-C exception being thrown, caught by the runloop, and re-thrown, resulting in the backtrace being lost.

要在不更改PLCrashReporter/HockeyApp的情况下进行调试,可以通过

To debug this without changes in PLCrashReporter/HockeyApp, you could register your own exception handler via NSSetUncaughtExceptionHandler(), and log the provided stack trace via (see [-NSException callStackReturnAddresses]). You'll need to symbolicate the results manually.

作为此类Bug的更通用解决方案,您可以使用PLCrashReporter干线获得原始异常回溯,这将在崩溃报告中单独记录异常的原始回溯.

As a more general solution for this class of bug, you may be able to get the original exception backtrace by using PLCrashReporter trunk, which will record the exceptions' original backtrace separately in the crash report.

但是,需要对HockeyApp客户端进行最小程度的修改以支持记录额外的堆栈跟踪.可以使用PLCrashReporter附带的文本格式化程序作为示例-它将格式化此附加堆栈跟踪

However, the HockeyApp client would need to be minimally modified to support recording the extra stack trace. The text formatter included with PLCrashReporter can be used as an example -- it will format this additional stack trace as an additional named pseudo-thread.

这篇关于通过HockeyApp更新应用后启动时,应用崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆