我允许用户创建应用级密码。我通过SFHFKeychainUtils在钥匙串中保存并检索它。除非用户升级到新设备并从旧设备执行还原备份,否则一切正常。永远不会接受正确的密码,显然已丢失。
对此原因的解释似乎包含在此SO thread中“通过未加密的备份,您只能将密钥链还原到同一iOS设备。”结果是我的passwordIsSet标志指示YES,没有要匹配的密码,并且用户被锁定在应用程序之外。
除了在NSUserDefault中存储密码之外,我有哪些选择,这显然不那么安全:
请注意,我已经测试了几种不同的方法。密码是正确的。无论是否重置设备,恢复到相同的设备都可以正常工作。问题仅限于恢复到新设备。
谢谢。