2013-12-13 36 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

相关问题