我已成功使用SecItemAdd()
和SecItemCopyMatching()
函数在iOS和OS X Lion(沙盒)中存储和检索Keychain信息。这些函数在iOS以来的iOS中以及OS X中的10.6(Snow Leopard),因此我发现我应该能够在Snow Leopard上使用相同的代码。
不幸的是,在Snow Leopard下,我无法使用SecItemCopyMatching()
访问钥匙串项目中的加密数据(密码),只能看到用户名,地址等。我尝试使用特定于操作系统X的SecKeychainFindInternetPassword()
函数检索钥匙串项目,并且它更具描述性,因为它会给我errSecAuthFailed (-25293)
错误。
有趣的是,当关闭沙盒时,SecItemAdd()
/ SecItemCopyMatching()
在Snow Leopard下运行良好。此外,SecKeychainAddInternetPassword()
/ SecKeychainFindInternetPassword()
对在有和没有沙盒的情况下都能正常工作。但是,我真的希望能够在iOS和OS X中使用相同的代码,并且根据docs / API,它应该是可能的。
任何想法的人?