【发布时间】:2014-03-14 18:41:54
【问题描述】:
我需要获取唯一设备 ID 以填充数据库中的唯一用户 ID。我已经使用以下代码来获得它。
NSString *strApplicationUUID= [[[UIDevice currentDevice] identifierForVendor] UUIDString];
但是当我重新安装应用程序时,UUID 一直在变化。但据我所知,设备 ID 永远不会改变。为此,我与第三方 SSKeychain 一起使用了以下代码来保存和检索旧的 UDID:
NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@"manab"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:Appname account:@"manab"];
}
现在的问题是当该应用程序的版本发生更改时,即应用程序 v2.0 从应用程序 v1.0 再次更改 UDID。所以逻辑对我来说很清楚,我并没有一直获得唯一的 UDID,我只是将 UDID 作为供应商或应用程序的基础。
如何以编程方式获得它?还有其他方法可以获得它,请告诉我正确的方向。
【问题讨论】:
-
您应该阅读那篇文章以获取有关 UDID 的一些信息blog.appsfire.com/…
-
UDID 在 iOS 7 中不再可用(Apple 一直告诉开发人员它自 iOS 5 以来已被弃用)。如果用户从供应商处卸载所有应用程序然后重新安装它们,
identifierForVendor将被重置。如果需要唯一标识用户,则需要使用用户名和密码。 -
嗨机器猫,你能告诉我如果有人需要识别他的设备,那么他怎么能做到这一点,必须有一个有效的方法......
-
好问题。我有同样的问题兄弟。