Ios 如何从配置文件中提取捆绑包标识符?

Ios 如何从配置文件中提取捆绑包标识符?,ios,shell,code-signing,provisioning-profile,bundle-identifier,Ios,Shell,Code Signing,Provisioning Profile,Bundle Identifier,我试图搜索一个快速命令,从配置文件中提取包标识符。我想我以前见过这样的事,但现在找不到了 检查.mobileprovision文件可以看出它是一个.plist文件,但不完全是因为它被一些二进制数据包围。我尝试了PlistBuddy,但二进制数据导致它失败,出现以下错误: Unexpected character 0 at line 1 我认为我在过去看到的命令只是一些正则表达式,用于提取想要的值。我知道,但我想这是真的。事实上,如果我不需要安装任何依赖项,我更喜欢正则表达式解决方案。TL;博士

我试图搜索一个快速命令,从配置文件中提取包标识符。我想我以前见过这样的事,但现在找不到了

检查
.mobileprovision
文件可以看出它是一个
.plist
文件,但不完全是因为它被一些二进制数据包围。我尝试了
PlistBuddy
,但二进制数据导致它失败,出现以下错误:

Unexpected character 0 at line 1
我认为我在过去看到的命令只是一些正则表达式,用于提取想要的值。我知道,但我想这是真的。事实上,如果我不需要安装任何依赖项,我更喜欢正则表达式解决方案。

TL;博士 现在您有了一个合适的plist,您可以正常使用
PlistBuddy
。我最终改用了
plutil
,因为
PlistBuddy
不支持从stdin读取,而且我不想创建临时文件。不幸的是,
plutil
输出XML,不仅输出属性的值,而且还输出
权限。应用程序标识符
属性前面有团队ID,因此我无论如何都需要正则表达式来提取捆绑包标识符

如果您对如何改进此命令有任何建议,我很高兴听到他们的建议,但该命令按预期工作,解决了我的问题。希望其他人也会发现它很有用

security cms -D -i your.mobileprovision | plutil -extract Entitlements.application-identifier xml1 -o - - | grep string | sed 's/^<string>[^\.]*\.\(.*\)<\/string>$/\1/g'
security cms -D -i your.mobileprovision > tmp.plist