2013-12-13 83 views
1

相同的參數,我試圖用SSKeychain保留UUID在iOS爲什麼SSKeychain返回不同的結果與不同的iOS應用

和示例代碼低於

NSString *retrieveuuid = [SSKeychain passwordForService:@"tempApp" account:@"tempUser"]; 
if (retrieveuuid == nil) { 
    //Generate UUID 
    CFUUIDRef cfuud = CFUUIDCreate(kCFAllocatorDefault); 
    NSString *uuid = CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid)); 
    //save in keychain 
    [SSKeychain setPassword:uuid forService:@"tempApp" account:@"tempUser"]; 
    return uuid; 
} else { 
    return retrieveuuid; 
} 

我的問題是,我運行第一個應用程序,然後生成一個UUID,然後運行第二個應用程序,其中 具有相同的參數,以便retrieveduuid不應該爲空,那麼爲什麼第二個應用程序返回不同的UUID?我認爲這將返回與第一個應用程序相同的UUID ,因爲我已將UUID保存在App1中的鑰匙串中,並嘗試通過App2中的相同參數來檢索它。

感謝您的幫助

回答

0

UUID是一個通用獨特的IdenTifier。如果你在兩個不同的應用程序中得到相同的結果,會不會很愚蠢,不是嗎? ;)

如果你想分享的應用程序之間的鑰匙扣,看到了這個問題:How to share keychain data between iOS applications

+0

是的,我知道UUID應該是不同的,只是不知道是因爲APP1挽救其UUID到鑰匙扣和App2爲什麼APP 2不檢索APP1的UUID使用相同的參數值。 –

+1

因爲應用程序具有沙箱化的鑰匙串,就像文件系統一樣。應用程序1無法訪問App 2保存的文件。該鏈接提供了有關如何共享鑰匙串的一些信息。 – Rick

相關問題