应用程序在 iOS 中将帐户 A 移动到 B 后可能会丢失钥匙串访问问题

Potential Loss of Keychain Access Issue After Application Move Account A To B in iOS

我们的 iOS 应用程序正在从账户 A 转移到账户 B,之前我们使用账户 A 中创建的证书并使用账户 A 的证书在 iTunes Connect 上上传构建。

现在,当我们在 iTunesconenct 上上传应用程序进行 Beta 测试时,我们使用了在帐户 B 中创建的证书(由于转移应用程序帐户)。

因此,现在上线应用程序的应用程序标识符与App Store 中Beta TestFlight 测试应用程序的应用程序标识符不同。我们收到了钥匙串访问可能丢失的警告。

现在,我们正在使用商店 UUID 的 SSKeychain 包装器来跟踪用户。 [SSKeychain setPassword:UUID forService:@"com.example.appname" account:@"appname" error:&error]

如果应用程序 ID 前缀更改,那么 SSKeychain 将失去访问权限?

因为我们在数据库中跟踪 UUID,以便使用 SSKeychain 进一步使用。我的疑问是,如果 APPID 前缀发生变化,那么它也会影响 SSKeychain,并且会为所有设备生成新的 UUID?

那么,我们如何解决这个问题?请让我们知道此问题的解决方案。

钥匙串访问与应用程序 ID 前缀相关联。它们必须具有相同的前缀。我们有一个案例,不同的应用程序在同一个开发者帐户和不同的前缀中,它们不会共享相同的钥匙串访问。必须让 Apple 修复,所以一切都是一样的。

在您的情况下,如果您将应用程序移动到帐户 B,应用程序 ID 将具有不同的前缀,并且将无法访问 "old" 钥匙串。

据我所知,如果应用程序前缀已更改,则没有解决此问题的方法。

是的,所有设备都将获得一个新的数据钥匙串存储,并且将无法访问 "old" 钥匙串数据。