仅使用 shell 我如何知道配置文件是应用商店还是临时的?

How can I know if a provisioning profile is app-store or ad-hoc using only the shell?

给定配置文件。什么命令会告诉我它是应用商店还是临时配置文件(或者这两种类型都不是)?

临时配置文件将包含一个列出设备的 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> )

如果命令 return 为真(return 代码为 0),它要么是应用商店配置文件,要么是内部分发配置文件。如果命令找不到 plist 条目(命令将 return a 1),则它是一个开发者配置文件。