在运行时列出设备上的所有临时配置文件并获取它们的到期日期

List all the Provisional Profiles on the device at Runtime and get their EXPIRY dates

我的企业应用程序正在分发,配置文件 (oldPP) 将在 3 个月后过期。我创建了一个新的配置文件 (newPP),并将其放置在已安装我的应用程序的设备上。现在有 2 个配置文件,当我使用 App Configurator 2 工具连接设备时可以看到它们。

使用 this link 我能够获得嵌入式临时配置文件 (oldPP) 的到期日期

我也试过了

let urls = Bundle.main.urls(forResourcesWithExtension: "mobileprovision", subdirectory: nil)

但这只有 returns url of (oldPP) 在我的主应用程序包中。 (newPP)位于哪里?我就是想不通。

我的最终目标是在打开应用程序后,如果最新的配置文件即将过期,则通过消息通知用户。为此,我需要阅读 (oldPP) 和 (newPP) 的有效期。

由于 iOS 沙盒,您将无法访问设备上安装的其他配置文件。您只会得到 oldPP,因为它是应用程序包中唯一的 .mobileprovision 文件。我不相信 Apple 会让应用程序在设备上查询 PP,因为这可以用来获取有关设备上安装的其他应用程序的信息。

我建议每次 PP 到期时重新打包您的企业应用程序,以便 embedded.mobileprovision 文件始终是最新的。然后你可以使用通知功能(我有办法获取 pp 过期以及证书过期 )来通知用户他们需要安装新版本的应用程序。即使没有代码更改,ipa 中至少也会包含 bew embedded.mobileprovision 文件。

如果您使用 MDM,而不是将新的配置文件推送到设备,您现在可以将带有新 embedded.mobileprovision 文件的新 ipa 推送到设备。如果您要求他们更新他们的配置文件,向他们提供 .ipa 文件的 link 可能同样简单。

遗憾的是,Apple 不太可能允许开发人员查询 iOS 设备上安装的其他 PP。