Ios 苹果';无UDID的移动设备管理

Ios 苹果';无UDID的移动设备管理,ios,mdm,Ios,Mdm,安装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', 'Me

安装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'}
令牌更新

{'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的应用程序


从iOS 6.0+开始,苹果提供了新的标识符供您使用。你的选择是:

[[UIDevice currentDevice] identifierForVendor]]
这是为了向特定供应商标识设备。因此,对于同一个开发者的应用程序来说,它是相同的,但是对于不同开发者的应用程序来说,它会有所不同

或者,您可以使用:

[[ASIdentifierManager sharedManager] advertisingIdentifier]
这将返回一个在所有供应商中都相同的值。但是,它仅用于广告目的(在某些情况下,可以更改…例如,如果设备被擦除)

您还可以参考
uniqueIdentifier
上的文档,可以找到这些文档并对上述两个替换选项(以及使用
nsuid
类的
UUID
的另一个选项)进行注释


上述两个选项的主要限制是它们仅适用于iOS 6.0+版本。。。如果您必须以iOS 5.0+为目标,您还有另一个选项,即创建您自己的标识符(例如,基于由完成的MAC地址)。

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

这是一个做这项工作的方法。希望有帮助


Amar.

MAC地址在iOS7中不可用

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

苹果公司表示

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


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

下面是一个指向示例项目的链接,该项目从MDM提供的PList中提取配置设置。在您的情况下,您只需要让MDM发送UDID。


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

所以您想要替换此
[[UIDevice currentDevice]uniqueIdentifier]
?您可以使用
[UIDevice uniqueDeviceIdentifier]作为替代品,看看我在这里的答案,你解决了这个问题吗?我也有同样的问题。正在考虑通过推送通知将UDID发送到我的iOS应用程序