【发布时间】:2014-05-31 08:05:57
【问题描述】:
我正在使用此代码在我的应用中获取 iOS 7 设备的 UDID
+(NSString*)uniqueIDForDevice
{
NSString* uniqueIdentifier = nil;
if( [UIDevice instancesRespondToSelector:@selector(identifierForVendor)] )
{ // >=iOS 7
uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else
{ //<=iOS6, Use UDID of Device
CFUUIDRef uuid = CFUUIDCreate(NULL);
//uniqueIdentifier = ( NSString*)CFUUIDCreateString(NULL, uuid);- for non- ARC
uniqueIdentifier = ( NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid));// for ARC
CFRelease(uuid);
}
return uniqueIdentifier;
}
但其他应用程序中的相同代码显示另一个 UDID。无论应用程序如何,我如何才能获得在整个 iPad 中都相同的唯一标识符?
【问题讨论】:
-
Apple 最近从 iOS 6 中删除了对 udid 的访问。人们开始使用 Wifi MAC 地址,然后苹果也删除了对它的访问。建议改用 identifierForVendor。因此,您使用相同开发者 ID 开发的任何应用都将报告相同的 udid。