从 XCode 运行时找不到钥匙串值

Dan*_*son 5 xcode keychain ios sskeychain ios9

我正在使用 SSKeychain 来存储会话令牌。当我从 XCode 编译和运行应用程序时,有时找不到令牌(似乎它偶尔会工作)。但是,如果我拔下设备并在没有 XCode 的情况下运行应用程序,则令牌会返回 10/10 次。我不确定这是否是 SSKeychain 或一般钥匙串的问题。我用来存储和读取值的代码如下:

- (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;
}
Run Code Online (Sandbox Code Playgroud)

许多围绕钥匙串访问的问题似乎通过意识到钥匙串不是数据存储并且它有时可以被清空(例如由于内存警告)来解决。但是,由于我总是在同一设备上运行,并且在拔下并再次运行后令牌仍然存在,我不知道这可能是这里的问题。

Pav*_*kal 2

这是钥匙串本身的bug。如果您正在设备上调试应用程序,则需要破坏应用程序安全性才能启用调试模式,这就是钥匙串无法正常工作的原因