首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以使用什么长期方法来唯一标识iOS设备?

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

Stack Overflow用户
提问于 2012-04-25 23:56:41
回答 3查看 4.9K关注 0票数 19

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

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

问题是UIDevice uniqueIdentifier属性已被弃用。据我所知,有一些解决方法(如this question中所述)。

一种可能是使用iOS设备的介质访问控制地址。然而,我觉得苹果可能也会在未来的某个时候限制对这些信息的访问。

除了访问MAC地址之外,还有没有其他方法来识别iOS设备,我们将来可以依赖它?

EN

回答 3

Stack Overflow用户

发布于 2012-05-08 11:39:10

使用苹果公司首选的生成CFUUIDRef的方法可能是更好的解决方案,因为我觉得未来可能也会删除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-device/

票数 7
EN

Stack Overflow用户

发布于 2012-05-05 02:39:18

另一种选择是动态生成您自己的UUID。

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

您可以将此UUID保存在NSUserDefaults中,以实现基于安装的唯一性。如果基于设备的唯一性确实是最重要的(这样在卸载和重新安装之后id仍然存在),那么您将需要一种机制来在设备上持久存储ID。我认为你可以考虑使用Keychain来保存那个ID,它应该在应用卸载之后仍然存在。您甚至可以在将UUID添加到密钥链时使用访问组,这样您就可以拥有一套使用相同UUID的应用程序。

有关保存和检索keychain项的更多信息,请参阅苹果的安全框架参考。

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

票数 2
EN

Stack Overflow用户

发布于 2012-04-26 00:16:46

使用设备的Mac地址。我想这是你所需要的最独特的东西。

How can I programmatically get the MAC address of an iphone

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10319275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档