应用因热重启而出现“看门狗”错误而终止

问题描述

不久前,我错误删除用户配置文件中的大多数“本地”文件夹,从而导致在那里安装的程序或那里有一些资产的众多问题。以同样的方式,我的热重启配置被搞砸了,出现了一个错误,指出钥匙串与其他地方设置的不匹配。因此,我重置了所有配置,现在可以构建,但是尝试在iPad上进行测试时,它将尝试加载一段时间,然后以非常适时的方式崩溃。

由于我明确终止了该应用程序(我在任何时候都没有碰到它),因此调试输出仅表明“应用程序已终止”或类似热重启关闭之类的事情。

我查看了设备日志,并在最后弹出:

Provision violated for watchdog scene-create: <FBSProcessResourceProvision: 0x280cfb600; allowance: <; FBSProcessResourceAllowance; type: realTime; timeValue: 16.60s>; violated: YES>
Executing termination for reason (none) with request: <FBSProcessterminationRequest: 0x283853500; label: "watchdog provision violated"; exceptionCode: "Watchdog Violation (0x8BADF00D)"; reportType: CrashLog; explanation: "scene-create watchdog transgression: com.companyname.TraceIt exhausted real (wall clock) time allowance of 16.60 seconds">

我做了自己的计数,看来该应用尝试加载20秒钟以上,当然,由于违反时间限制,“看门狗”然后终止。 但这在我删除大部分本地文件夹之前并没有发生,通常不到10秒。

这可能与配置问题有关吗?我知道,当它在调试输出显示证书时,团队配置文件代码错误的,但是它似乎试图加载。

解决方法

我在App类中创建了一个静态DataRepository对象,但是在其构造函数中为Task.Run([method]).Wait();,因此App类从未到达该类的实际构造函数。显然,这是一个无限的等待,因此直到完成为止没有任何进展。我删除了.Wait,现在可以使用了。