2016-02-25 82 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解決方案 - 我的意思是在調試模式下不要使用鑰匙串: - / –

相關問題