iOS MDM的唯一标识符

时间:2013-08-16 02:58:34

标签: ios mdm udid

由于Apple正在弃用应用的唯一设备标识符,因此在已注册MDM的设备上链接企业应用的最佳方法是什么?

从MDM协议参考文档中,注册仍然使用UDID进行签入过程。

我们不能使用新的identifierForVendor,因为它与签入的UDID不同。

让我更新我实施MDM解决方案的方式,

  1. 设备将使用令牌和设备UDID(Apple正在删除API的那个)签入MDM服务器
  2. 设备将设备信息发送到MDM服务器(Wifi MAC地址,序列号,操作系统版本和其他信息)
  3. 将有一个客户端应用程序将通过RESTful API与MDM服务器通信。 (以前我使用UDID作为密钥标识符)
  4. 我正在考虑使用MAC地址,但在最新的iOS 7中,系统将始终返回值02:00:00:00:00:00。

    我们也无法获取设备序列号。

    所以我的问题再一次,我们怎么知道这个设备上的这个应用程序属于服务器上的这个MDM注册(3)。因为现在,应用程序没有任何公共密钥可以与签入过程一起引用。服务器如何知道哪个设备是哪个?

    感谢。

5 个答案:

答案 0 :(得分:5)

最好的方式,也许是唯一的方法,就是在iOS 7中使用新的托管应用程序配置功能。您可以让MDM向应用程序推送类似API密钥的内容。然后,您的应用程序会将您的密钥显示在您的MDM服务器或任何其他Web服务中。

将配置推送到应用后,您可以通过以下方式提取API密钥。大多数主流MDM解决方案已在其最新版本中支持此类功能。

NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"];
NSString *apiKey = config[@"kAPIKey"];

if (apiKey) {
    //We got an API key and we can use it
} else {
    //We didn't get an API key...something has gone wrong
}

答案 1 :(得分:2)

然而 lidsinker 的回答是正确的,让我专注于此,以便其他一些正在寻找此问题的人可以得到帮助。

您可以创建企业应用程序,并可以通过MDM进行安装。 设备注册后,MDM可以将Enterprise应用程序安装到设备上。 MDM还可以在NSUserDefault中设置默认配置。

应用程序可以在 lidsinker 的答案中按照上述说明启动时阅读。

Apple在此提供示例。 https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html

答案 2 :(得分:0)

我想读几个月前发现的这个来源; http://www.doubleencore.com/2013/04/unique-identifiers/

从那里我使用了CFUUID方法,这对我很有用。

NSString *uniqueID = [NSString stringWithFormat:@"%@", CFUUIDCreateString(NULL, CFUUIDCreate(NULL))];

答案 3 :(得分:0)

在iOS 7中,Apple现在总是在查询MAC时返回固定值,以特别阻止MAC作为ID方案的基础。所以你现在真的应该使用 - [UIDevice identifierForVendor]或者创建一个每安装的UUID。

答案 4 :(得分:0)

在iOS 6.0中,

[UIDevice uniqueIdentifier]已替换为[[UIDevice identifierForVendor] UUIDString]