应用程序崩溃但没有TestFlight崩溃报告 [英] App Crashes But No TestFlight Crash Report

查看:248
本文介绍了应用程序崩溃但没有TestFlight崩溃报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用户(使用iPhone 5)报告说我的应用在屏幕变黑(启动屏幕为黑色)约15秒后在启动时崩溃.该用户下载了一个TestFlight构建,我在其中将检查点包括在App委托中,但是我没有得到证明这些检查点被交叉的证据,并且我从未收到崩溃报告.

I have one user (with an iPhone 5) reporting that my app crashes on launch about 15 seconds after the screen goes black (the splash screen is black). The user downloaded a TestFlight build where I included checkpoints in the App delegate, but I don't get evidence that those checkpoints are crossed, and I never get a crash report.

我将情节提要上的入口点更改为空白视图控制器,现在我可以看到检查点已被交叉.在我看来,由于故事板资源的加载时间太长,Watchdog暂停了该应用程序,但是除了四个微小的标签栏图标之外,所有图像均根据需要实时构建.有几个音频文件,但它们是按需加载的.我想不出其他任何可能导致延迟的资源.没有人报告过这个问题,我很困惑.

I changed the entry point on the storyboard to a blank view controller, and now I can see that the checkpoints are being crossed. It's occurred to me that Watchdog is suspending the app due to storyboard resources taking too long to load, but all the images are built in real-time as needed, with the exception of four tiny tab-bar icons. There are several audio files but they are loaded on demand. I can't think of any other resources that could be causing a delay. No one else has reported this problem, and I'm stumped.

任何见解都会受到赞赏,尤其是为什么我看不到崩溃报告或TestFlight的检查点.

Any insight appreciated, especially as to why I'm not seeing a crash report or checkpoints from TestFlight.

推荐答案

您的假设是正确的,看门狗杀死了该应用程序.这是因为该应用程序无法正常启动,并且主线程被阻止,或者由于未加载UI导致无法进行用户交互.

Your assumption is correct, the watchdog killed the app. This is because the app doesn't start up properly and either the main thread is blocked or no user interaction is possible since no UI is loaded.

据我所知,您是在加载资源时创建资源吗?并且可能在主线程上执行此操作?您应该尝试将资源匮乏的代码卸载到后台线程中,而不要在主线程上执行此操作,因为在主线程上,较早/较慢的设备可能会花费比预期更长的时间.用户界面应该始终是响应性的,主线程永远都不应处理可能接近一秒处理时间的任务.

As I understand your description, you are creating the resources while loading? And probably doing this on the main thread? You should try to offload resource hungry code into a background thread instead of doing this on the main thread where older/slower devices could take much longer than expected. The UI should always be responsive, the main thread should never ever to tasks that could get anywhere close to one second of processing.

另一个原因可能是情节提要和视图控制器之间的链接断开,并且实际上从不加载该设备类型.

Another reason could be that the link between the storyboard and the view controller is broken and it actually never loads on that device type.

但是如果没有更多细节,就不可能说出到底发生了什么.

But without more details it is impossible to say what exactly is going on.

通常:如果该应用已被iOS系统杀死,例如由于启动时间超过或由于分配了过多的内存而被看门狗监控,那么只有iOS才能生成崩溃报告.

In general: If the app is killed by the iOS system, e.g. by the watchdog due to startup time exceeding or due to allocating too much memory, then only iOS can generate a crash report.

问题在于该应用被终止,在这种情况下,该进程被终止.而且该进程内部运行的任何代码都无法检测到该错误.而且,由于iOS上的崩溃报告(不是基于iOS系统的崩溃报告器)确实在被杀死的同一应用程序进程中运行,因此它们无法报告或编写任何崩溃报告.

The problem is that the app gets killed and in that case the process is killed. And that cannot be detected by any code running inside that process. And since crash reports on iOS, other than the iOS system based crash reporter, do run inside the same app process that is being killed, they cannot report or write any crash report.

以下页面对此提供了更多详细信息:

The following page gives some more details on this: http://support.hockeyapp.net/kb/how-tos-faq/which-types-of-crashes-can-be-collected-on-ios-and-os-x (Though with context to PLCrashReporter, which is not used by Testflight. But the general statements are identical)

这篇关于应用程序崩溃但没有TestFlight崩溃报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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