10

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

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

我们不能使用新的标识符ForVendor,因为它与签到的UDID 不同。

让我更新一下我是如何实现我的 MDM 解决方案的,

  1. 设备将使用令牌和设备 UDID(Apple 正在删除 API 的那个)签入到 MDM 服务器
  2. 设备将向 MDM 服务器发送设备信息(Wifi MAC 地址、序列号、操作系统版本和其他信息)
  3. 将有一个客户端应用程序通过 RESTful API 与 MDM 服务器通信。(以前我使用 UDID 作为密钥标识符)

我正在考虑使用 MAC 地址,但在最新的 iOS 7 中,系统将始终返回值 02:00:00:00:00:00。

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

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

谢谢。

4

5 回答 5

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
}
于 2014-01-06T21:31:58.773 回答
2

但是lidsinker的回答是正确的,让我专注于它,以便其他正在寻找这个的人可以得到帮助。

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

应用程序可以在它启动时读取它,如lidsinker的回答中所述。

苹果在这里提供了例子。 https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html

于 2017-08-11T07:27:03.510 回答
0

我会阅读几个月前找到的这个来源;http://www.doubleencore.com/2013/04/unique-identifiers/

从那里我使用了对我很有帮助的 CFUUID 方法。

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

于 2013-08-16T03:57:32.033 回答
0

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

于 2013-08-16T04:14:19.273 回答
0

[UIDevice uniqueIdentifier][[UIDevice identifierForVendor] UUIDString]在 iOS 6.0 中已被替换为。

于 2013-08-16T05:54:04.293 回答