作为移动设备管理功能的一部分,我们为客户提供私有应用程序商店。管理员可以将ipa文件上传到我们的服务器,我们将允许托管设备直接安装这些企业应用程序。
当管理员上传ipa时,我们希望进行一些验证,如果ipa不符合要求,我们将立即拒绝。具体地说:
我有以下问题:
embedded.mobileprovision,但是appstore构建没有这个文件。检查该文件的存在是否足以确定上传的ipa是否是企业ipa,还是有更准确的方法来识别非企业ipa?embedded.mobileprovision中似乎有一个字段embedded.mobileprovision,我可以检查它的值来确定过期日期吗?提前谢谢。
发布于 2015-11-13 02:47:54
您的ipa文件中有一个embedded.mobileprovision。
试着调查embedded.mobileprovision
它是一个二进制plist (plist是一种有点特殊的xml格式,但仍然是xml)。我可以用原子和维姆来观察它。您会注意到有不可读的前缀和后缀,忽略它们。进入中间部分。您可以看到许多节点,如TeamIdentifier、AppIDName、ProvisionedDevices。它有很多员工。
根据您的要求,我在https://github.com/0xc010d/mobileprovision-read/blob/master/main.m中找到了一些您可能需要的代码
它检查移动设备的一些关键节点。少于4?
if ([option isEqualToString:@"type"]) {
if ([plist valueForKeyPath:@"ProvisionedDevices"]){
if ([[plist valueForKeyPath:@"Entitlements.get-task-allow"] boolValue]) {
printf("debug\n");
}
else {
printf("ad-hoc\n");
}
}
else if ([[plist valueForKeyPath:@"ProvisionsAllDevices"] boolValue]) {
printf("enterprise\n");
}
else {
printf("appstore\n");
}
}关于解析器
您可以编写命令行解析器工具,也可以使用谷歌工具。台阶不会很难
ProvisionedDevices、ProvisionsAllDevicesProvisionsAllDevices是true。接受吧。完成
https://stackoverflow.com/questions/33683634
复制相似问题