我知道[[UIDevice currentDevice] uniqueIdentifier]
被拒绝了,我用过:
- (NSString *) uniqueDeviceIdentifier{
NSString *macaddress = [[UIDevice currentDevice] macaddress];
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
NSString *stringToHash = [NSString stringWithFormat:@"%@%@",macaddress,bundleIdentifier];
NSString *uniqueIdentifier = [stringToHash stringFromMD5];
return uniqueIdentifier;
}
如果我的方法未经Apple批准,我可以使用哪种方法获取唯一标识符?
答案 0 :(得分:5)
这个项目与你正在做的事情类似:https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5。我相信苹果现在正在接受它。要真正回答您的问题,没有其他(公共)方式获取不仅是唯一的ID,而且每个应用程序都相同。 @ Vishal的使用方法:
+ (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
和@ JeffWolski的使用方法:
[[NSUUID UUID] UUIDString];
如果您不需要设备ID在应用程序之间保持一致,只需要一种方法来识别您自己的特定设备。如果您需要在应用程序之间工作的设备ID,则需要使用您的代码或开源项目来使用设备MAC地址。
<强>更新强>
我刚刚找到另一种解决方案。您可以使用[[UIDevice currentDevice] identifierForVendor]
。同样,此设备ID对您的应用来说也是唯一的。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor
答案 1 :(得分:3)
这是iOS 6中的新功能。它为您提供符合RFC 4122的UUID。
[[NSUUID UUID] UUIDString];
答案 2 :(得分:3)
使用此CFUUIDCreate()创建UUID:
+ (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
UDID仅在iOS 5中弃用。
答案 3 :(得分:3)
您可以使用openUDID替换它。