iphone - iOS 唯一用户标识符

标签 iphone objective-c ios

我正在为 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。

  1. 设置您的应用以使用 iCloud。
  2. 将 Keychain 中的 UUID 也保存到 NSUserDefaults。
  3. 通过键值对数据存储将 NSUserDefaults 中的 UUID 传递到云端。
  4. App首次运行时,检查云数据是否可用,并在新设备的钥匙串(keychain)中设置UUID。

您现在拥有一个唯一标识符,该标识符是持久的并与所有设备共享/同步。

关于iphone - iOS 唯一用户标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273014/

相关文章:

ios - 获取和更新plist值

iphone - AVMutableComposition 视频创建问题

iphone - 推送通知无法在一个ipod中工作,其余的设备iphone-4,iphone-3,ipod都可以正常工作

iphone - Xcode 谷歌地图搜索栏

ios - 无法解析协议(protocol)中的类型

iphone - ios 获取媒体库中项目的播放次数

ios - 将不同版本的应用程序上传到苹果应用商店

objective-c - UITextView 报告高度不正确

ios - 从函数返回 CGAffineTransform

ios - 包含数组(并分配为变量)的元组不起作用?