我正在为 iphone 编写一个应用程序,它使用 REST 与我的服务器通信。主要问题是,我需要以某种方式识别用户。不久前,我们被允许使用 UDID,但现在它不再被允许了。那么我应该改用什么?我需要 iphone 上的某种标识符,所以用户将删除应用程序,重新安装它,他会得到相同的 id。
最佳答案
我使用 CFUUIDCreate()
创建了一个 UUID:
+ (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
然后将上面的 UUID 设置为我的 NSString:
NSString *UUID = [nameofclasswhereGetUUIDclassmethodresides UUID];
然后我使用 SSKeyChain 将该 UUID 存储到钥匙串(keychain)中
使用 SSKeyChain 设置 UUID:
[SSKeychain setPassword:UUID forService:@"com.yourapp.yourcompany" account:@"user"];
检索它:
NSString *retrieveuuid = [SSKeychain passwordForService:@"com.yourapp.yourcompany" account:@"user"];
当您将 UUID 设置为 Keychain 时,即使用户完全卸载应用程序然后再次安装它也会保留。
确保所有设备在钥匙串(keychain)中都具有相同的 UUID。
- 设置您的应用以使用 iCloud。
- 将 Keychain 中的 UUID 也保存到 NSUserDefaults。
- 通过键值对数据存储将 NSUserDefaults 中的 UUID 传递到云端。
- App首次运行时,检查云数据是否可用,并在新设备的钥匙串(keychain)中设置UUID。
您现在拥有一个唯一标识符,该标识符是持久的并与所有设备共享/同步。
关于iphone - iOS 唯一用户标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273014/