什么是我可以用来唯一标识iOS设备的长期方法?

唯一注册iOS设备的最佳方式是什么,这不会受到未来苹果限制的限制?

我目前注册iOS设备的方法(基本上是为了唯一标识设备)是我使用iOS设备的UDID来识别它并注册它,然后在识别它之后执行必要的操作。

问题是不build议使用UIDevice uniqueIdentifier属性。 对此 ,我有一些解决方法(正如在这个问题中所讨论的)。

一种可能是使用iOS设备的MAC地址。 不过,我觉得苹果可能会在未来某个时候限制访问这些信息。

除了访问MAC地址外,还有其他的方法来识别iOS设备吗?

使用Apple生成CFUUIDRef的首选方法可能是更好的解决scheme,因为我感觉将来也可以删除MAC地址。 如果你使用这个并将它保存到你的NSUserdefaults中,你将会保留它,除非用户删除了这个应用程序。 如果您想要生成一个可以在应用程序之间共享的生成的唯一ID,或者在安装之间保持一致,则应该查看使用UIPasteboard并使用在应用程序之间共享的密钥来保存生成的UID。

//Create a unique id as a string CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); //create a new pasteboard with a unique identifier UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:YES]; [pasteboard setPersistent:YES]; //save the unique identifier string that we created earlier [pasteboard setString:((__bridge NSString*)string)]; //accessing it UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:NO]; NSLog([pasteboard string]); 

我已经在这里写了一个简短的教程,但基本上是上面的行: http : //www.roostersoftstudios.com/2012/03/26/a-way-to-share-data-between-apps-on-a-given- IOS-设备/

除非您的应用程序用于pipe理我的Apple设备,否则这是错误的方法。 作为用户,我不想让你知道我正在使用哪种设备。 无论使用什么设备,我都希望你能认出我。 我希望能够replace有缺陷的设备。 苹果限制越来越多的访问这些信息。

我看不到MAC地址如何工作。 我的iOS设备可以有多个。

另一种select是dynamic生成你自己的UUID。

 CFUUIDRef uuid = CFUUIDCreate(NULL); CFStringRef generatedUuidStr = CFUUIDCreateString(NULL, uuid); CFRelease(uuid); NSString* uuidStr = [(NSString*)generatedUuidStr autorelease]; 

您可以将此UUID保存在NSUserDefaults中以进行基于安装的唯一性。 如果基于设备的唯一性确实是最重要的事情(这样在卸载并重新安装ID之后仍然存在),您将需要一种机制来将ID保留在设备上。 我认为你可以考虑使用钥匙串,以坚持该ID应该坚持超越应用程序卸载。 在将UUID添加到钥匙串时,您甚至可以使用访问组,以便您可以拥有一组使用相同UUID的应用程序。

有关保存钥匙串项目并检索它们的更多信息,请参阅Apple的安全框架参考。

http://developer.apple.com/library/ios/#DOCUMENTATION/Security/Reference/SecurityFrameworkReference/_index.html

我见过的最好的方法是使用钥匙串。 您可以使用CFUUIDCreateString函数生成UUID并将其存储在钥匙串中。 这些数据保留在安装和备份恢复之间的设备中。

使用设备的Mac地址。 这是独特的,你可能需要我想。

我怎样才能以编程方式获取iPhone的MAC地址