作者:mobiledu2502853397 | 来源:互联网 | 2023-01-03 02:28
在我的一个iOS应用中,访问钥匙串时(在两种情况下,即设置一个项目并获取一个项目)时,我看到多次崩溃,错误代码为25308。
几个细节:
1)我使用的是第三方钥匙扣包装https://github.com/kishikawakatsumi/KeychainAccess
2)辅助功能选项设置为“ whenUnlockedThisDeviceOnly ”
3)这不是发生在所有用户。我无法重现它。
4)我正在AppDelegate中的几个地方访问钥匙串。在应用启动时报告的崩溃很少,而在Firebase令牌刷新通知观察器方法中报告的崩溃很少。
5)在didFinishLaunch中,我尝试访问钥匙串项的值,就像在Firebase令牌刷新中一样,我试图将新的令牌值设置为钥匙串。
根据我的发现,我知道在设备处于锁定状态时用户尝试访问钥匙串时,将返回此错误代码25308 。但是我的Fabric(崩溃报告工具)显示,在所有这些崩溃中,“应用处于焦点”状态。
因此,这使我困惑于多个问题,例如:
1)除设备未锁定状态外,还有哪些情况会引发此错误25308?
2)Firebase令牌刷新通知是否导致该应用的后台启动?如果是这样,我该如何重现。(这里的一个支持之处是我知道该应用未卸载)
于01/03更新:
似乎根本原因是“当Firebase生成新令牌时,应用正在启动,而当设备处于锁定状态时,此启动正在发生,因此,钥匙串访问引发了此类错误25308。” 有人知道新的Firebase令牌如何启动已处于终止状态的应用程序吗?
感谢您对此的回应。谢谢..