我希望您知道,在 iOS5uniqueIdentifier
中已弃用 in。UIDevice
我正在寻找与 iOS5 基本相同的功能。
我从文档中了解到,苹果希望我们(开发人员)创建自己的 UUID(CFUUIDCreate
我猜是使用)并将其存储在NSUserDefaults
. 然而,这让我有点颤抖,一点也不觉得有救。在这种情况下,拥有 UUID 感觉有点毫无意义。
我需要 UUID 的原因是因为我在身份验证过程中向我的服务器发送了包括 UUID 在内的一堆信息,并且如果服务器可以在下次启动应用程序时“猜测”用户是谁,我希望能够跳过一些步骤或重新安装或其他应用程序实现我的库。CFUUIDCreate
这似乎对我没有帮助。
我也快速浏览了gekitz,但据我了解,它仅基于电话中以太网“卡”的MAC地址。这不合适,因为我有一种模糊的感觉,即 MAC 地址是可变的。uniqueIdentifier
在UIDevice
是_
基于各种硬件细节的每个设备唯一的字母数字字符串。
目前我写了这段代码,它检索一个 UUID。但是只要我在 XCode 中清理并在手机上重新安装应用程序,我就会得到一个新的 UUID。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *UUID = @"";
if (![defaults valueForKey:@"UUID"])
{
CFUUIDRef UUIDRef = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef UUIDSRef = CFUUIDCreateString(kCFAllocatorDefault, UUIDRef);
UUID = [NSString stringWithFormat:@"%@", UUIDSRef];
[defaults setObject:UUID forKey:@"UUID"];
}
else {
UUID = [defaults valueForKey:@"UUID"];
}
[deviceInformation setObject:UUID forKey:@"UUID"];
总而言之,我的问题如下:
是否有一些可靠的方法来创建基于设备的 UUID,该设备“难以”篡改并为我作为接收者提供一些可以依赖和信任的东西?这个不一定要基于设备,可以基于app作为App UUID,只要重新安装后一样。