以编程方式验证 MDM 配置文件(配置)是不是已成功推送到 iOS 设备?

Posted

技术标签:

【中文标题】以编程方式验证 MDM 配置文件(配置)是不是已成功推送到 iOS 设备?【英文标题】:Programmatically verify an MDM profile (configuration) has been successfully pushed to an iOS device?以编程方式验证 MDM 配置文件(配置)是否已成功推送到 iOS 设备? 【发布时间】:2014-02-13 01:06:18 【问题描述】:

我正在编写一个 ios 客户端应用程序,该应用程序向服务器发送请求,该服务器转身并请求通过外部 MDM (AirWatch) 将更新的配置文件推送到我的设备。我相信个人资料显示在Settings -> General -> Profiles。当 MDM 完成处理配置文件推送(发送或排队,我不确定)时,它会响应调用服务器说“是的配置文件已推送”,后者将响应响应到我的客户端应用程序。

问题在于,配置文件实际被推送/安装到设备上大约需要 30 秒,而 Web 服务响应要短得多。所以我的客户端应用程序认为配置文件已经安装,它允许应用程序在配置文件仍然不可用时继续。我希望能够检测到配置文件何时成功推送到我的设备,并且直到之后才允许应用程序继续运行。我的另一个选择是弹出一个提示配置文件已成功推送,但我仍然需要检测正在安装的配置文件。

2013 年关于 *** 的大部分问答似乎都说无法查询配置文件,但我想知道人们最近是否尝试过任何变通方法。我想到了以下可能性 - 但我不知道哪个是首选,或者是否可以使用 iOS7(截至 2014 年 2 月 12 日)。

    在已安装的配置文件中查询我需要的配置文件(听起来不可能 从我见过的大多数问答中;不知道iOS7的更新有没有变化 这) 如果我知道我正在寻找的确切个人资料名称怎么办? 为 MDM 推送添加通知侦听器 使用registerForRemoteNotificationTypes / didReceiveRemoteNotificationdidFinishLaunchingWithOptions MDM 推送可能发生在我的应用之外,因此沙盒可能会阻碍 你能监听 MDM 使用的端口吗? 监听配置文件配置设置的更改 在服务器上添加一个请求以查询设备以获取已安装的配置文件,并在向客户端发送响应之前调用它 通过在配置文件中包含自签名证书并对其进行验证来进行证书验证 看起来有点老套,我不确定我的 MDM 是否允许我这样做 使用可达性方法

作为说明,我查看了以下链接以及更多内容:

WWDC 2013 MDM slides - 没有看到任何突出的东西 iOS get Configuration Profiles that are installed Verify/Check to see if a Configuration Profile has been installed on iPhone(从 2010 年开始)

提前致谢!

【问题讨论】:

我假设您指的是推送的配置文件是设备配置配置文件(例如密码要求),而不是在 iOS 7 中可用的托管应用设置。这是正确的吗? @lidsinker 正确,它是在我的应用程序之外使用的 *** 设置/配置文件。 【参考方案1】:

您的应用无法确定是否已安装配置文件,因为不存在允许应用查询其已安装配置文件的(公共)API,您也无法确定是否已安装 MDM 推送通知发送到设备。您必须依靠您的 MDM (AirWatch) 来确定配置文件是否已安装。

当 AirWatch 将配置文件推送到设备时,它将收到配置文件已安装的确认,但直到 AirWatch 重新查询所有已安装的配置文件时,它才会报告配置文件已安装。我所看到的是,在 AirWatch 发送配置文件安装命令后不久,它将重新查询设备上的配置文件列表,因此只需轮询服务器几次并等到您看到配置文件已安装,这可能是可行的.我没有花太多时间详细了解 AirWatch REST API,但我认为这是可能的。

除此之外,我能看到的唯一其他选项是让您使用可达性来检测是否正在设置 *** 隧道。

【讨论】:

我确实通过 Airwatch 支持验证了最佳选择是重新查询设备上已安装的配置文件,并且他们的初始 Web 服务响应只是配置文件推送已在他们的系统中排队,而不是它实际上是发送/安装的。再次感谢!

以上是关于以编程方式验证 MDM 配置文件(配置)是不是已成功推送到 iOS 设备?的主要内容,如果未能解决你的问题,请参考以下文章

安装设备配置文件,如 Onavo 和 Testflight

离线 MDM 配置文件切换 iOS

以编程方式使用证书身份验证配置 WCF 服务客户端

以编程方式添加配置文件和证书

配置MDM的描述文件

如何在 iPhone 中安装 MDM 配置文件?