使用SFHFKeychainUtils的一些代码的调试版本在我正在开发的mac上工作时没有抱怨是在另一个mac上触发错误:
该代码使用SFHFKeychainUtils提供的以下方法:
+[SFHFKeychainUtils getPasswordForUsername:andServiceName:accessGroup:error:]
+[SFHFKeychainUtils storeUsername:andPassword:forServiceName:accessGroup:updateExisting:updateExisting:error:]
使用+[SFHFKeychainUtils storeUsername:andPassword:forServiceName:accessGroup:updateExisting:updateExisting:error:]
为用户名添加密码。一段时间后,尝试使用+[SFHFKeychainUtils getPasswordForUsername:andServiceName:accessGroup:error:]
检索密码。但是,此方法返回错误;其域名为SFHFKeychainUtilsErrorDomain
,其代码为-25293
(因此为errSecAuthFailed
)。只有当密码实际存储在钥匙串中时(或者至少从钥匙串访问中可见),才会返回此错误。
为什么会这样?
答案 0 :(得分:4)
问题是缺少代码签名。需要代码签名才能使第二台机器访问钥匙串。修复是为调试版本启用代码签名。