Apple没有UDID的移动设备管理

时间:2013-05-13 07:57:44

标签: ios mdm

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

身份验证

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

TokenUpdate

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

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

因此,在iOS应用程序中,我必须将设备的UDID发送到我们的服务器以链接它 令牌与设备。我正在使用"[[UIDevice currentDevice] uniqueIdentifier]"来执行此操作。

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

Protocol Reference

4 个答案:

答案 0 :(得分:2)

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

[[UIDevice currentDevice] identifierForVendor]]

这用于识别特定供应商的设备。因此,对于同一个开发人员的应用程序来说它将是相同的,但它会因不同开发人员的应用程序而异。 See the docs here.

或者,您可以使用:

[[ASIdentifierManager sharedManager] advertisingIdentifier]

这将返回所有供应商的相同值。但是,它仅用于广告目的(在某些情况下,可以更改......例如,如果设备被删除)。 See the docs here.

您也可以参考uniqueIdentifier上可以找到here的文档,并对上述两个替换选项(以及使用UUID NSUUID的其他选项进行评论1}} class)。

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

答案 1 :(得分:0)

MAC地址是唯一的,每个iPhone设备都会拥有它。使用macaddress创建一个与UDID类似的唯一字符串,然后使用它。

这是完成工作的github link to UIDevice category。希望它有所帮助!

阿玛尔。

答案 2 :(得分:0)

iOS7中没有MAC地址

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

Apple已声明

  

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

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

答案 3 :(得分:0)

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

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

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