我正在编写一个 iOS 客户端应用程序,该应用程序向服务器发送请求,服务器转而通过外部 MDM(AirWatch)请求将更新的配置文件推送到我的设备。我相信该配置文件会显示在“设置 -> 通用 -> 描述文件”中。当 MDM 完成处理配置文件推送(已发送或已排队,我不确定)时,它会响应调用服务器,表示“是的,已推送配置文件”,该服务器会将该响应回显到我的客户端应用程序中。
问题在于,配置文件实际上需要约 30 秒才能被推送/安装到设备上,而 Web 服务响应远远短于此。因此,我的客户端应用程序认为已安装了配置文件,并允许该应用程序继续运行,而配置文件仍然不可用。我想能够检测到配置文件何时成功地推送到我的设备上,并在此之后才允许应用程序继续运行。我的另一个选择是制作一个弹出窗口,显示配置文件已成功推送,但我仍然需要检测配置文件是否已安装。
stackoverflow 上大多数 2013 年的问答似乎都说无法查询配置文件,但我想知道是否有任何最近尝试过的解决方法。我考虑了以下可能性-但我不知道哪种方法更好,或者是否在 iOS7 中可能实现(截至 2014 年 2 月 12 日)。
1. 查询已安装的配置文件以获取所需的配置文件 (从我看到的大多数问答来看似乎不可能;不知道 iOS7 的更新是否改变了这一点) - 如果我知道我正在寻找的确切配置文件名称会怎样?
2. 添加 MDM 推送的通知侦听器 - 使用 registerForRemoteNotificationTypes / didReceiveRemoteNotification 或 didFinishLaunchingWithOptions。 - MDM 推送可能发生在我的应用程序之外,因此沙盒可能会妨碍 - 您可以监听 MDM 使用的端口吗?
3. 监听配置文件设置的更改
4. 在向客户端发送响应之前,在服务器上添加一个查询设备已安装的配置文件的请求。
5. 通过在配置文件中包含自签名证书并验证它来进行证书验证 - 看起来有点像 hacky,我不确定我的 MDM 是否允许我这样做
6. 使用 reachability 方法
作为注释,我已查看了以下链接和更多内容:
问题在于,配置文件实际上需要约 30 秒才能被推送/安装到设备上,而 Web 服务响应远远短于此。因此,我的客户端应用程序认为已安装了配置文件,并允许该应用程序继续运行,而配置文件仍然不可用。我想能够检测到配置文件何时成功地推送到我的设备上,并在此之后才允许应用程序继续运行。我的另一个选择是制作一个弹出窗口,显示配置文件已成功推送,但我仍然需要检测配置文件是否已安装。
stackoverflow 上大多数 2013 年的问答似乎都说无法查询配置文件,但我想知道是否有任何最近尝试过的解决方法。我考虑了以下可能性-但我不知道哪种方法更好,或者是否在 iOS7 中可能实现(截至 2014 年 2 月 12 日)。
1. 查询已安装的配置文件以获取所需的配置文件 (从我看到的大多数问答来看似乎不可能;不知道 iOS7 的更新是否改变了这一点) - 如果我知道我正在寻找的确切配置文件名称会怎样?
2. 添加 MDM 推送的通知侦听器 - 使用 registerForRemoteNotificationTypes / didReceiveRemoteNotification 或 didFinishLaunchingWithOptions。 - MDM 推送可能发生在我的应用程序之外,因此沙盒可能会妨碍 - 您可以监听 MDM 使用的端口吗?
3. 监听配置文件设置的更改
4. 在向客户端发送响应之前,在服务器上添加一个查询设备已安装的配置文件的请求。
5. 通过在配置文件中包含自签名证书并验证它来进行证书验证 - 看起来有点像 hacky,我不确定我的 MDM 是否允许我这样做
6. 使用 reachability 方法
作为注释,我已查看了以下链接和更多内容:
- WWDC 2013 MDM幻灯片 - 没有看到什么特别的内容
- iOS获取已安装的配置文件
- 验证/检查iPhone上是否已安装配置文件 (来自2010年)
提前感谢!