2016-02-25 54 views
3

我正在使用SSKeychain存储会话令牌。当我从XCode编译并运行应用程序时,有时无法找到令牌(似乎它偶尔会起作用)。但是,如果我拔掉设备并运行没有XCode的应用程序,该令牌会回来,10/10次。我不确定这是SSKeychain还是一般Keychain的问题。我使用的存储和读取数值的代码如下:从XCode运行时找不到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; 
} 

旋转钥匙串访问许多问题似乎被意识到钥匙串是不是一个数据存储和它有时被清空(解决由于内存警告,例如)。但是,由于我总是在同一台设备上运行,并且在拔下并重新运行后令牌仍然存在,我不明白这可能是这里的问题。

回答

1

这是钥匙串本身的错误。如果您正在设备上调试应用程序,则需要违反应用程序安全性以启用调试模式,这就是为什么钥匙串无法正常工作的原因。

+0

我明白了。有没有解决方法?我认为很多大型应用程序都使用钥匙串,如果您不能依靠钥匙串在设备上工作,那么构建类似登录流的东西就非常困难。 –

+0

我不知道任何解决方法。我所做的是我尽可能多地使用模拟器:)你也可以做一些特殊的DEBUG解决方案 - 我的意思是在调试模式下不要使用钥匙串: - / –

相关问题