Reputation: 8947
I had an application in which I am saving [[[UIDevice currentDevice] identifierForVendor] UUIDString]
on keychain like this:
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;
But it is giving me always zero data.its not saving for the first time also ,can anybody help me on this?
Upvotes: 1
Views: 949
Reputation: 2355
Your App may be rejected due to Apple prevent use UDID:-
May it Help you:
-(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;
}
Upvotes: 1