【问题标题】:iOS 8 Unique Identifier (Serial Number preferred)iOS 8 唯一标识符(序列号优先)
【发布时间】:2015-01-30 16:31:07
【问题描述】:

我正在开发一个企业应用程序,需要访问以编程方式检索设备的序列号。是否有关于如何在 iOS 8 中检索它的 API 或任何文档?据我所知,此功能已在 iOS 8 中删除。

序列号是否有合适的替换标识符?我需要可靠的东西,即使设备重置也不会改变。

它将供企业使用,因此 App Store 批准不是问题。

【问题讨论】:

  • 查看this answer,在iOS7及更早版本中有一种获取序列号的方法,但在iOS8中不再可用。您最好的选择可能是将 UUID 存储在您可以跨应用跟踪和重新安装但不能重置但不能重置的钥匙串中。
  • 通过知道设备的序列号,您具体想完成什么?
  • 该应用程序的目的是跟踪对 iPad 进行的维修并用于库存目的。我需要有一种方法将 iPad 的历史永久绑定到该 iPad。标识符不改变至关重要,因为我工作的公司每年都会擦除所有 iPad。
  • 添加了一个可能有帮助的额外编辑。

标签: ios enterprise


【解决方案1】:

你在这里是一条小溪。两个“跟踪”功能是广告标识符和供应商标识符。前者可以很容易地在“设置”应用程序中重置,而后者将在用户卸载所有具有与应用程序套件关联的根捆绑标识符的应用程序后重置。当然,两者也会随着设备重置而改变。

如果您使用 MDM 解决方案部署应用程序,您将可以访问该设备的 UDID,因为它仍会转发到 MDM 服务器,您只是无法在代码中以编程方式访问它。 UDID、序列号和 MAC 地址(即使使用私有 API)的完全弃用让我在我们的企业中编写的一些自定义实用程序大吃一惊,以尝试完成与您想要做的类似的事情。如果你发现一些一致的东西,我很乐意看到后续!

编辑:

当我再次回到这种情况时,我顿悟了。如果您实际上正在使用 AirWatch(我无法与 Mobile Iron 等交谈),您可以设置控制台以在安装应用程序时向每台设备发送钥匙串值。从那里,应用程序将能够使用 AirWatch 发送的值。 AirWatch 为设备收集的任何属性(序列号、UDID、MAC 等)也是如此。尽管此解决方法有一个很大的警告(使用 AirWatch 进行部署),但它会起作用。由于 Apple 取消了所有序列号解决方案以赢得 iOS8,这是我发现的最可行的选择。

【讨论】:

  • Dan,在有了相同的 MDM 想法后,我又回到了这个问题上。我希望避免由于没有完全访问权限来编写脚本而需要利用 MDM 的数据。我想出了一个替代的解决方法,这无疑有点奇怪。 Apple 的 GSX 服务(用于自助服务帐户)具有用于检索诊断信息的 API。我可以要求用户手动输入序列号,然后将其上传到 GSX 诊断程序中。我在后台加载诊断页面,如果它返回没有错误,我知道序列是有效的并且可以保存在钥匙串中。
  • 这很好用。鉴于我的环境范围(用户群和用户技术水平),我不得不尽可能地消除人为错误。不过,很有潜力的解决方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多