用户和程序员iOS 8都可以看到设备的唯一标识符?

时间:2016-04-12 16:23:10

标签: ios udid ios-enterprise

我经历了几乎所有相关的SO问题,谷歌搜索很多,但我无法获得帮助。

有许多帖子和SO答案指出要使用[UIDevice identifierForVendor],但由于此ID对用户不可见,我想要不同的方式来唯一标识设备。

基本上我正在开发不会进入App Store的企业应用程序(无需担心私有API)。 我有服务器,其中包含所有用户详细信息,包括设备ID(不知道该用作设备ID)已经输入。

当设备启动应用程序时,将调用Web服务,并且需要发送设备ID来验证设备。

这就是为什么我需要设备ID,这对用户和程序员都是可见的。

任何帮助表示赞赏!!!

更新
'用户可以看到'意味着用户可以在安装应用程序之前查看此唯一ID,以便他/她可以将此号码发送给管理员以在服务器上注册。

如果此唯一ID在服务器上注册,那么只能访问应用程序,否则应用程序将无法连接到服务器。

3 个答案:

答案 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传递给应用程序。

您如何看待这个想法?如果你愿意,我可以分享更多细节。