在我的一个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令牌如何启动已经处于终止状态的应用程序?
感谢您对此的回应。感谢..