我经历了几乎所有相关的SO问题,谷歌搜索很多,但我无法获得帮助。
有许多帖子和SO答案指出要使用[UIDevice identifierForVendor]
,但由于此ID对用户不可见,我想要不同的方式来唯一标识设备。
基本上我正在开发不会进入App Store的企业应用程序(无需担心私有API)。 我有服务器,其中包含所有用户详细信息,包括设备ID(不知道该用作设备ID)已经输入。
当设备启动应用程序时,将调用Web服务,并且需要发送设备ID来验证设备。
这就是为什么我需要设备ID,这对用户和程序员都是可见的。
任何帮助表示赞赏!!!
更新
'用户可以看到'意味着用户可以在安装应用程序之前查看此唯一ID,以便他/她可以将此号码发送给管理员以在服务器上注册。
如果此唯一ID在服务器上注册,那么只能访问应用程序,否则应用程序将无法连接到服务器。
答案 0 :(得分:0)
使用
NSString* uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
NSLog(@"UDID:: %@", uniqueIdentifier);
您需要放一个小案例来检查应用是否在模拟器或设备上运行。
答案 1 :(得分:0)
您无法再获取设备的唯一ID。 "的 identifierForVendor 强>" 是你最好的。 Apple系统地禁用了 识别特定设备。
虽然," identifierForVendor "每次新安装应用程序后,值也会更改。
了解更多信息visit。
你也让我对这条线感到困惑"用户可以看到",请你更具体一点吗?
还有一种方法 - 使用icloud工具包,您可以获得当前登录的icloud用户帐户的唯一标记。这在设备上的每个应用程序中都是唯一的。
您似乎想要使用唯一ID 或 UDID 来跟踪用户,而Apple并不喜欢这样,所以在继续前进之前请visit。< / p>
<强>更新强>
如果Apple阻止使用唯一ID跟踪用户,那么您就不应该使用它。
您只想验证服务器上的用户。最适合您的解决方案是iCloud令牌,
获取并将其存储在用户默认值或钥匙串中,并随时随地使用。
通过这种方式,如果他/她使用具有相同iCloud帐户的多台设备,您还可以在不同设备上跟踪单个用户。
答案 2 :(得分:0)
您可以尝试通过服务http://get.udid.io获取设备的UDID,然后在服务器上验证此设备。
但在此之后,您需要在应用程序中获取相同的UDID以将其传递给服务器...可以通过特定的URL架构将UDID传递给应用程序。
您如何看待这个想法?如果你愿意,我可以分享更多细节。