我正在使用 SSKeychain 来存储 session token 。当我从 XCode 编译和运行应用程序时,有时找不到 token (似乎它偶尔会起作用)。但是,如果我拔下我的设备并在没有 XCode 的情况下运行应用程序, token 将返回 10/10 次。我不确定这是 SSKeychain 还是一般 Keychain 的问题。我用来存储和读取值的代码如下:
- (void)setSecureValue:(NSString *)value forKey:(NSString *)key
{
[SSKeychain setPassword:value forService:kServiceName account:key];
}
- (NSString *)secureValueForKey:(NSString *)key
{
if (key != nil)
{
return [SSKeychain passwordForService:kServiceName account:key];
}
return nil;
}
通过意识到钥匙串(keychain)不是数据存储并且它有时会被清空(例如,由于内存警告),许多与钥匙串(keychain)访问有关的问题似乎得到了解决。但是,由于我总是在同一台设备上运行,并且在拔下电源并再次运行后 token 仍然存在,所以我不明白这怎么可能是这里的问题。
最佳答案
这是钥匙串(keychain)本身的错误。如果您在设备上调试应用程序,则需要破坏应用程序安全性才能启用 Debug模式,这就是钥匙串(keychain)无法正常工作的原因
关于ios - 从 XCode 运行时找不到钥匙串(keychain)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616241/