UDID始终从IOS中的钥匙串返回零数据?

问题描述:

我在我的钥匙串保存[[[UIDevice currentDevice] identifierForVendor] UUIDString]这样的应用程序:UDID始终从IOS中的钥匙串返回零数据?

NSString *bundleId = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; 

NSString *strApplicationUUID; 



if(![keychainItem objectForKey:(__bridge id)(kSecValueData)]){ 
     NSString *idfa = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
      NSLog(@"bundleId %@",idfa); 
     [keychainItem setObject:idfa forKey:(__bridge id)(kSecValueData)]; 
     NSLog(@"saving item %@", [keychainItem objectForKey:(__bridge id)(kSecValueData)]); 
     strApplicationUUID=[keychainItem objectForKey:(__bridge id)(kSecValueData)]; 
    }else{ 
     NSLog(@"saved item is %@", [keychainItem objectForKey:(__bridge id)(kSecValueData)]); 

    strApplicationUUID=[keychainItem objectForKey:(__bridge id)(kSecValueData)]; 
    } 

// NSString *strApplicationUUIDstr = [[NSString alloc] initWithData:[keychainItem objectForKey:(__bridge id)(kSecValueData)] 
               //encoding:NSUTF8StringEncoding]; 

NSLog(@"%@",strApplicationUUIDstr); 
NSLog(@"%@",strApplicationUUID); 

return strApplicationUUID; 

但它给我始终为零data.its不保存,第一次还,任何人可以帮助我在这?

您的应用程序可能会被拒绝,由于苹果防止使用UDID: -

也许它可以帮助您:

-(NSString *)getUniqueDeviceIdentifierAsString 
{ 

NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey]; 

NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"incoding"]; 
if (strApplicationUUID == nil) 
{ 
    strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
    [SSKeychain setPassword:strApplicationUUID forService:appName account:@"incoding"]; 
} 

return strApplicationUUID; 
} 
+0

什么是错的,采取[[[的UIDevice currentDevice] identifierForVendor] UUIDString]。我是只需要那个 – hacker

+0

你在模拟器或真实设备上工作。 –