iOS6以及之前使用OpenUDID没有问题。iOS7使用OpenUDID好像不推荐,让使用 advertisingIdentifier。 但是这样的话,想要唯一识别一个设备,假设支持5,6,7 那只能5,6使用OpenUDID,7使用advertisingIdentifier。 并且advertisingIdentifier 可以在设置内随便重置。。这样的话,有没有一个比较统一的方法可以统计。 还有人说OpenUDID生成的标示符可能会造成不同设备生成相同的字符串。。
这是一篇OpenUDID不推荐在iOS7使用OpenUDID的文章。 iOS7不推荐使用OpenUDID
就是为了杜绝你获得可以辨别不同设备的绝对唯一标识。所以现在推荐使用的是自己生成的UDID,然后自己保存下来,如果用户重装就会使用新ID,无法做到绝对唯一性。
+(NSString *)admUUID;
{
NSString * uuid = [SSKeychain passwordForService: kADMUUIDKeyChainService account: kADMUUIDKeyChainAccount];
if (uuid) {
return uuid;
}
CFUUIDRef puuid = CFUUIDCreate( nil );
CFStringRef uuidString = CFUUIDCreateString( nil, puuid );
NSString * result = (NSString *)CFBridgingRelease(CFStringCreateCopy( NULL, uuidString));
CFRelease(puuid);
CFRelease(uuidString);
[SSKeychain setPassword: result forService: kADMUUIDKeyChainService account: kADMUUIDKeyChainAccount];
return result;
}
现在我自己生成UUID 使用keychain 保存了。