2016-08-08 12 views
0

私はこのようなキーチェーンに[[[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も初めて保存しない私に与えていますか?

答えて

0

アプリが原因アップルに拒絶することができる使用の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] .I AMを服用中に何が間違っていますただそれを取ること – hacker

+0

あなたはシミュレータまたは実際のデバイスで作業します。 –

関連する問題