2017-03-20 27 views
1

我正在iOS中开发一个应用程序,我需要在应用程序中注册帐户期间在钥匙串中存储安全数据。
我面临的问题是,有时,当用户有第二个设备时,他们的注册(可疑)失败,因为此项目已存在于钥匙串中,原因是iCloud中的同步。这可能是用户重新安装了应用程序并且钥匙串中的物品在重新安装后仍然存活的情况,但不幸的是,唯一给我的细节是“用户无法注册”日志文件,这些日志文件抱怨钥匙扣项目。将商品保存在没有iCloud同步的iOS Keychain中?

不幸的是,这个注册过程是固定的,因为它是一个已经在生产中的继承项目,所以我不能真正改变它太多。

我的膝盖反应是以某种方式阻止这个项目跨设备同步,但我甚至无法找到任何可能表明这是可能的东西。
所有的想法表示欢迎
感谢

编辑
我才意识到,我的问题是不是很清楚。我想这是一个双人游戏
1.有没有办法阻止keychain项目与iCloud同步?
2.任何人都可以想办法解决这个问题,如果不是的话?

回答

2

如果您在创建钥匙串项目时未在钥匙串项目字典中指定kSecAttrSynchronizable属性和true值,那么它将不会通过iCloud进行同步;它只会保留在本地设备上。

这很可能是钥匙串中存在旧项目。您需要检查注册码并对其进行修改,以提供某种从失败的注册尝试中恢复的方法。

+0

图例。我其实只是注销了钥匙串中的项目,可以看到项目属性'sync = 0',所以我假设这正是您所指的。这留下了一个事实,即它可能是一个重新注册的设备,我可以轻松处理。谢谢。 – mylogon