首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析bash中的mobileprovision文件?

解析bash中的mobileprovision文件?
EN

Stack Overflow用户
提问于 2011-06-19 03:24:55
回答 6查看 14.5K关注 0票数 23

我正在构建一个php/bash/mysql系统,用于自动化iPhone应用程序的临时分发。但我想读取项目的mobileprovision文件中的应用程序标识符键,并据此更改它的info.plist文件。

如果cfbundleidentifer密钥与其配置文件相同,我目前可以从php构建ipa文件。

我找到了类似于此https://gist.github.com/711794的代码,但我希望bash脚本将其集成到我的系统中。

谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-08 06:37:58

如果您在安装了mac os x的计算机上运行此命令,则可以使用以下命令:

代码语言:javascript
复制
/usr/libexec/PlistBuddy -c 'Print :Entitlements:application-identifier' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)
票数 52
EN

Stack Overflow用户

发布于 2013-01-17 21:07:20

如果你想以适当的方式从mobileprovision中提取plist,而不是依赖grepping/sedding等,你可以使用OpenSSL,如下所示:

代码语言:javascript
复制
openssl smime -inform der -verify -noverify -in file.mobileprovision

在您的案例中,一个完整的示例可能是:

代码语言:javascript
复制
openssl smime -inform der -verify -noverify -in file.mobileprovision > tmp.plist
/usr/libexec/PlistBuddy -c 'Print :Entitlements:application-identifier' tmp.plist

OpenSSL部分应该可以在任何平台上工作,尽管到目前为止我只在Mac上这样做过。PlistBuddy只在Mac上,但可以找到其他实用程序来读/写属性列表文件。

票数 28
EN

Stack Overflow用户

发布于 2017-12-12 08:15:58

我创建了一个bash函数,它基于jlawrie的回答来列出~/Library/MobileDevice/Provisioning Profiles文件夹中所有.mobileprovision的包ID。

将此代码保存到您的.bash_profile中,然后从终端使用list_xcode_provisioning_profiles调用它。

代码语言:javascript
复制
list_xcode_provisioning_profiles() {
    while IFS= read -rd '' f; do
        2> /dev/null /usr/libexec/PlistBuddy -c 'Print :Entitlements:application-identifier' /dev/stdin \
            <<< $(security cms -D -i "$f")

    done < <(find "$HOME/Library/MobileDevice/Provisioning Profiles" -name '*.mobileprovision' -print0)
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6398364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档