1

安装 MDM 配置文件后,当设备向服务器注册 MDM 时;服务器从设备获得以下响应:

认证

{'Topic': 'com.apple.mgmt.External.dadd0670-xxx', 'UDID'
: 'xxxx', 'MessageType': 'Authenticate'}

令牌更新

{'Topic': 'com.apple.mgmt.External.dadd0670-xxx', 'UDID' : 'xxx', 'Token': xxxx, 'PushMagic': 'xxxx', 'MessageType': 'TokenUpdate'}

正如您在响应中看到的那样,要将MDM令牌(我们在 TokenUpdate 命令中获取)映射到设备,我们只能使用设备的UDID.

因此,在 iOS 应用程序中,我必须将设备的 UDID 发送到我们的服务器,以将该令牌与设备链接。我"[[UIDevice currentDevice] uniqueIdentifier]"用来做这个。

但是,现在苹果不接受访问 uniqueIdentifier 的应用程序。

协议参考

4

4 回答 4

2

从 iOS 6.0+ 开始,Apple 提供了您可以使用的新标识符。您的选择是:

[[UIDevice currentDevice] identifierForVendor]]

这是为了向特定供应商识别设备。因此,对于同一个开发者的应用程序,它是相同的,但在不同开发者的应用程序中会有所不同。请参阅此处的文档。

或者,您可以使用:

[[ASIdentifierManager sharedManager] advertisingIdentifier]

这将返回一个在所有供应商中都相同的值。但是,它仅用于广告目的(在某些情况下,可以更改......例如,如果设备被擦除)。请参阅此处的文档。

您还可以参考uniqueIdentifier可以在此处找到的文档,并对上述两个替换选项(以及使用该类UUID的另一个选项)进行评论。NSUUID

上述两个选项的主要限制是它们仅适用于 iOS 6.0+...如果您必须针对 iOS 5.0+,您还有另一个选项是创建自己的标识符(例如基于 MAC 地址例如由UIDevice-with-UniqueIdentifier-for-iOS-5完成)。

于 2013-05-13T08:10:19.280 回答
0

MAC地址在iOS7中不可用

它将不断返回 02:00:00:00:00:00

苹果表示

iOS 7 中的 MAC 地址 2013 年 8 月 22 日 如果您的应用程序使用 MAC 地址来识别 iOS 设备,系统将为所有运行 iOS 7 的设备返回相同的静态值。请更新您的应用程序以使用 UIDevice 的 identifierForVendor 属性。如果您需要用于广告目的的标识符,请使用 ASIdentifierManager 的 adsIdentifier 属性。

https://developer.apple.com/news/?id=8222013a

于 2013-10-16T04:08:58.767 回答
0

一种可能的解决方案是使用新的托管应用程序功能,并让您的 MDM 通过配置 PList 将 UDID 传递到设备。

下面是一个示例项目的链接,该项目从 MDM 提供的 PList 中提取配置设置。在您的情况下,您只需让您的 MDM 发送 UDID。 https://developer.apple.com/library/ios/samplecode/sc2279/Introduction/Intro.html

我认识到这不是世界上最好的解决方案,但它是将设备上的应用程序映射到 MDM 中的设备记录的一种方式。

于 2014-01-06T21:01:24.513 回答
0

MAC 地址是唯一的,每个 iPhone 设备都会有它。使用 macaddress 来创建一个唯一的字符串,就像 UDID 一样,并使用它来代替。

这是完成这项工作的 UIDevice 类别的 github 链接。希望能帮助到你!

阿马尔。

于 2013-05-13T08:13:14.860 回答