我最近在调试我的应用程序的通用链接功能时遇到了问题。我能够使深度链接工作,但好像只有10%的几率。由于我刚刚升级到iOS 12,我想确保没有其他需要开发者执行的操作以确保该功能正常工作。
那么是什么导致了间歇性故障呢?看起来iOS对于确定后台线程何时可以运行具有相当严格的策略引擎。通过USB连接到我的手机并打开设备的调试控制台,我能够观察到这一点。
- Xcode –> Windows –> Devices & Simulators
- 点击左面板中的设备
- 点击 Open Console
从那里,我能够过滤“swcd”(共享Web凭据守护进程)。保持此控制台打开,我就能够在应用程序安装期间观察到守护进程在工作,此时iOS试图为我的应用程序下载“apple-app-site-association”文件。
结果,由于我的手机最近重新启动过,然后又确定我的手机过热,所以“dasd”(DuetActivitySchedulerDaemon)未能运行“SharedWebCredential Daemon”。
{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceInUse == 1 AND timeSinceThunderingHerdTriggerEvent < 900}]}}
], FinalDecision: Must Not Proceed}
{name: ThermalPolicy, policyWeight: 5.000, response: {Decision: Absolutely Must Not Proceed, Score: 0.00, Rationale: [{thermalLevel >= 20}]}}
], FinalDecision: Absolutely Must Not Proceed}
开发者们要小心了!