我有一个应用程序,我将[[[UIDevice currentDevice] identifierForVendor] UUIDString]
保存在钥匙串上,如下所示:
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;
但它总是给我零数据。第一次没有保存,有人可以帮我吗?
答案 0 :(得分:0)
由于Apple阻止使用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;
}