如何从外壳脚本读取PLIST信息(捆绑ID)
-
29-09-2019 - |
题
我想编写一个脚本,该脚本可以读取该应用程序的信息。 Xcode似乎在其环境变量中没有提供这些信息。还有其他方法可以将它们带入SH/Bash吗?
解决方案
这 defaults
命令可以读/写入任何PLIST文件,只需给它一个路径减去 .plist
延期:
$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier
com.apple.Preview
这拉了 CFBundleIdentifier
直接从应用程序包的值 Info.plist
文件。
默认值也与二进制文件一起工作,没有任何额外的步骤。
其他提示
使用PlistBuddy,Apple的应用程序可以将字符串分配给这样的VAR:
#!/bin/sh
BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")
如果在“运行脚本”构建阶段中运行此脚本,则build_root和infoplist_path是由xcode设置的变量。
您可以直接从已建立产品中读取文件。但是,如果您在编辑器中查看info.plist文件本身,则会看到shell变量本身。例如,捆绑包IS具有以下shell命令:
com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
你可以打电话 ${PRODUCT_NAME:rfc1034identifier}
在Xcode运行的任何外壳脚本中,都应填充。
Mac上安装了一个名为PlistBuddy的命令行程序,可以在PLIST中读取/写入值。在终端中键入“ Man PlistBuddy”以获取更多信息。
这个命令对我有用:
/usr/libexec/PlistBuddy -c 'print ":CFBundleIdentifier"' Info.plist
不隶属于 StackOverflow