如果我们使用PhoneGap,我们怎样才能防范iOS 6即将推出的UDID/UUID?

Way*_*Lue 3 iphone uuid cordova

我们目前正在为我们的移动应用程序使用PhoneGap,我知道他们有device.udid(http://docs.phonegap.com/en/1.0.0/phonegap_device_device.md.html#device.uuid)来获取唯一标识符.什么是面向未来的最佳方式,以便当iOS 6推出时我们当前的应用程序能够正常运行?我们是否应该开始使用其他一些解决方案(MAC地址等)以确保未来的兼容性?

Rog*_*Rog 15

查看文档 CFUUIDCreate

https://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFUUIDRef/Reference/reference.html

我使用下面的方法创建一个UUID,并在第一次启动应用程序时将其保存到用户首选项:

- (NSString *)getUUID
{
    NSString *UUID = [[NSUserDefaults standardUserDefaults] objectForKey:@"uniqueID"];
    if (!UUID)
    {
        CFUUIDRef theUUID = CFUUIDCreate(NULL);
        CFStringRef string = CFUUIDCreateString(NULL, theUUID);
        CFRelease(theUUID);
        UUID = [(__bridge NSString*)string stringByReplacingOccurrencesOfString:@"-"withString:@""];
        [[NSUserDefaults standardUserDefaults] setValue:UUID forKey:@"uniqueID"];
    }
    return UUID;
}
Run Code Online (Sandbox Code Playgroud)

  • 完善!.我添加[[NSUserDefaults standardUserDefaults] synchronize]; 将uniqueID保存到用户默认值后.此外,在某些情况下,使用iCloud同步UniqueID似乎是一个好主意,因为无论他/她拥有多少设备,它都会识别一个特定用户. (2认同)

Way*_*man 6

我一直在使用这个GitHub项目,它基本上获取设备的MAC地址并使用捆绑ID对其进行哈希:

gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5