我想编写一个脚本,该脚本可以读取该应用程序的信息。 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top