【问题标题】:How can I know if a provisioning profile is app-store or ad-hoc using only the shell?仅使用 shell,我如何知道配置文件是 app-store 还是 ad-hoc?
【发布时间】:2018-05-02 12:49:03
【问题描述】:

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

【问题讨论】:

    标签: ios xcode shell provisioning-profile ad-hoc-distribution


    【解决方案1】:

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

    ...什么也不显示。

    【讨论】:

      【解决方案2】:

      另一种方法是使用 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 配置文件之间的差异,除了证书之外,我看不出两者之间的密钥有什么不同。
      • 哦!我懂了。当您写“内部”时,我没有意识到您指的是“企业”。那就好用了。如果我有声望,我会支持你。
      • 没问题。另一个答案将以相同的方式工作。如果 mobileprovision 文件列出了单个设备,则它是一个开发配置文件。如果不是,它可能是 App Store 配置文件或内部分发(企业)配置文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 2013-07-09
      相关资源
      最近更新 更多