【发布时间】:2018-05-02 12:49:03
【问题描述】:
给定一个配置文件。哪些命令会告诉我它是应用商店还是临时配置文件(或这两种类型都不是)?
【问题讨论】:
标签: ios xcode shell provisioning-profile ad-hoc-distribution
给定一个配置文件。哪些命令会告诉我它是应用商店还是临时配置文件(或这两种类型都不是)?
【问题讨论】:
标签: ios xcode shell provisioning-profile ad-hoc-distribution
临时配置文件将包含列出设备的 XML 部分。这对于 App Store 或企业来说是不存在的。
所以...
pmills$ strings /Users/pmills/X_Ad_Hoc.mobileprovision | grep ProvisionedDevices
...显示:
<key>ProvisionedDevices</key>
...同时...
pmills$ strings /Users/pmills/X_App_Store.mobileprovision | grep ProvisionedDevices
...什么也不显示。
【讨论】:
另一种方法是使用 plistbudy 解析 mobileprovision 文件并查找 ProvisionsAllDevices 值:
/usr/libexec/PlistBuddy -c 'Print :ProvisionsAllDevices' /dev/stdin <<< $(security cms -D -i <path_to_profile.mobileprovision> )
如果命令返回 true(返回代码为 0),则它要么是应用商店配置文件,要么是内部分发配置文件。如果命令找不到 plist 条目(命令将返回 1),则它是开发人员配置文件。
【讨论】:
ProvisionsAllDevices 是要查找的正确键,如果您想查看它是 In House 还是 App Store 配置文件。相反,您可以查找 ProvisionedDevices 键以查看它是否是 Ad Hoc 配置文件。我试图查看 In House (Enterprise) 配置文件和 App Store 配置文件之间的差异,除了证书之外,我看不出两者之间的密钥有什么不同。