【发布时间】:2015-11-12 23:53:53
【问题描述】:
作为我们移动设备管理功能的一部分,我们为客户提供私人应用商店。管理员可以将 ipa 文件上传到我们的服务器,我们将允许托管设备直接安装这些企业应用程序。
当管理员上传ipa时,我们想做一些验证,如果ipa不符合要求,立即拒绝。具体来说:
- 如果ipa是由企业证书以外的证书(如appstore证书)签名的,我们要拒绝它;
- 如果 ipa 由已过期的证书签名,我们希望拒绝它;
- 如果 ipa 由已撤销的证书签名,我们希望拒绝它。
我有以下问题:
- 对于要求 #1,我注意到企业版本在 ipa 中有一个文件
embedded.mobileprovision,但应用商店版本没有该文件。检查该文件是否存在就足以确定上传的 ipa 是否为企业 ipa,还是有更准确的方法来识别非企业 ipa? - 对于要求 #2,
embedded.mobileprovision中似乎有一个字段ExpirationDate,我可以检查它的值以确定到期日期吗? - 据我所知,上面的#1 和#2 是可能的,但在用户实际尝试安装 ipa 之前,#3 将无法验证。即,当管理员上传 ipa 时,我无法捕捉到错误,但我会允许这样做,用户将收到无法安装应用程序的错误。
提前致谢。
【问题讨论】:
-
[[NSBundle mainBundle] pathForResource:@"embedded.mobileprovision" ofType:nil]stackoverflow.com/questions/17584426/…。看到类似的问题。你可以得到一些想法 -
@aelam 感谢您的回复。如果我错了,请纠正我,看起来该线程是关于检查应用程序代码中的构建类型。在我的情况下,我们不拥有该应用程序(因此我们无权访问其源代码),管理员上传他们自己的应用程序 - 并且这些应用程序已签名,因此我们无法将代码注入他们的应用程序。我们手头的只是一个 ipa 文件,我想要一种直接从这个 ipa 获取信息的方法。
标签: ios provisioning-profile mdm