【问题标题】:iOS 7 showing different UDIDs in different applicationsiOS 7 在不同的应用程序中显示不同的 UDID
【发布时间】: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。

标签: ios7 udid


【解决方案1】:

你不能。

identifierForVendor 只会为您在该设备上来自同一开发者的应用提供相同的标识符。并且不能保证是永久性的;如果您从供应商处删除所有应用程序,然后重新安装它们,您可能会得到不同的标识符。

至于你的 iOS6 实现,这不会给你任何永久的东西,因为 UUID 的目的是每次都给你一个唯一的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多