安装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的应用程序。
答案 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属性。
答案 3 :(得分:0)
一种可能的解决方案是使用新的托管应用程序功能,让MDM通过配置PList将UDID传送到设备。
下面是一个示例项目的链接,该项目从MDM提供的PList中提取配置设置。在您的情况下,您只需让您的MDM发送UDID。 https://developer.apple.com/library/ios/samplecode/sc2279/Introduction/Intro.html
我认识到这不是世界上最好的解决方案,但它是将设备上的应用程序映射到MDM中的设备记录的一种方式。