我正在编写一个 iOS 客户端应用程序,该应用程序向服务器发送请求,该服务器转身并请求通过外部 MDM (AirWatch) 将更新的配置文件推送到我的设备。我相信个人资料显示在Settings -> General -> Profiles
. 当 MDM 完成处理配置文件推送(发送或排队,我不确定)时,它会响应调用服务器说“是的配置文件已推送”,后者将响应响应到我的客户端应用程序。
问题是配置文件实际被推送/安装到设备上大约需要 30 秒,而 Web 服务响应比这要短得多。所以我的客户端应用程序认为配置文件已经安装,它允许应用程序在配置文件仍然不可用时继续。我希望能够检测到配置文件何时成功推送到我的设备,并且直到之后才允许应用程序继续运行。我的另一个选择是弹出一个提示配置文件已成功推送,但我仍然需要检测正在安装的配置文件。
2013 年关于 stackoverflow 的大部分问答似乎都说无法查询配置文件,但我想知道人们最近是否尝试过任何变通方法。我想到了以下可能性 - 但我不知道哪个是首选,或者 iOS7 是否有可能(截至 2014 年 2 月 12 日)。
- 查询我需要的已安装配置文件(从我见过的大多数问答中听起来是不可能的;不知道 iOS7 的更新是否改变了这一点)
- 如果我知道我正在寻找的确切个人资料名称怎么办?
- 为 MDM 推送添加通知侦听器
- 使用
registerForRemoteNotificationTypes
/didReceiveRemoteNotification
或didFinishLaunchingWithOptions
- MDM 推送可能发生在我的应用程序之外,因此沙盒可能会阻碍
- 你能听到 MDM 使用的端口吗?
- 使用
- 侦听配置文件配置设置的更改
- 在服务器上添加一个请求以查询设备以获取已安装的配置文件,并在向客户端发送响应之前调用它
- 通过在配置文件中包含自签名证书并对其进行验证来进行证书验证
- 似乎有点 hacky,我不确定我的 MDM 是否允许我这样做
- 使用可达性方法
作为说明,我查看了以下链接以及更多内容:
- WWDC 2013 MDM 幻灯片- 没有看到任何突出的东西
- iOS 获取已安装的配置文件
- 验证/检查是否在 iPhone 上安装了配置文件(从 2010 年开始)
提前致谢!