我正在构建一个php/bash/mysql系统,用于自动化iPhone应用程序的临时分发。但我想读取项目的mobileprovision文件中的应用程序标识符键,并据此更改它的info.plist文件。
如果cfbundleidentifer密钥与其配置文件相同,我目前可以从php构建ipa文件。
我找到了类似于此https://gist.github.com/711794的代码,但我希望bash脚本将其集成到我的系统中。
谢谢
发布于 2012-05-08 06:37:58
如果您在安装了mac os x的计算机上运行此命令,则可以使用以下命令:
/usr/libexec/PlistBuddy -c 'Print :Entitlements:application-identifier' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)
发布于 2013-01-17 21:07:20
如果你想以适当的方式从mobileprovision中提取plist,而不是依赖grepping/sedding等,你可以使用OpenSSL,如下所示:
openssl smime -inform der -verify -noverify -in file.mobileprovision
在您的案例中,一个完整的示例可能是:
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上,但可以找到其他实用程序来读/写属性列表文件。
发布于 2017-12-12 08:15:58
我创建了一个bash函数,它基于jlawrie的回答来列出~/Library/MobileDevice/Provisioning Profiles
文件夹中所有.mobileprovision的包ID。
将此代码保存到您的.bash_profile
中,然后从终端使用list_xcode_provisioning_profiles
调用它。
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)
}
https://stackoverflow.com/questions/6398364
复制相似问题