我们运行的OSX应用程序也有一些在其他平台上运行的模块,即大部分部分都移植到不同的平台,有些模块在所有平台上都是通用的,
当出现版本号时,为了与其他平台端口保持一致,我们需要维护一个通用版本,例如AppVersion.h,其中包含版本字符串。
现在要在UI上显示,我需要将相同的版本字符串从AppVersion.h文件复制到Info.plist
是否有相同的解决方法,即运行一些预构建脚本,该脚本读取版本字符串并更新info.plist。
提前致谢。
答案 0 :(得分:3)
绝对!这是我在资源复制之后用作构建阶段的内容。我稍微分解了这个问题,因为这是一个更大的脚本的一部分。
#!/bin/sh
export PlistBuddy="/usr/libexec/PlistBuddy"
# TODO: Get OUR_VERSION here.
export appPlist="${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/Info.plist"
$PlistBuddy $appPlist -c "set :CFBundleShortVersionString '$OUR_VERSION'"
$PlistBuddy $appPlist -c "set :CFBundleVersion '$OUR_VERSION'"
关于如何获得OUR_VERSION?我把那个留给你。在我的情况下,我只是在脚本中grepped文件。对我来说,这是一个xcconfig,但对你来说它将是标题。如果您有命令行经验,则可能有更好的方法从.h文件中提取符号含义。
请注意,这会将CFBundleShortVersionString
(用户可见版本)和CFBundleVersion
(内部版本)设置为相同的值。这可能就是你想要的。如果没有,修复它。 :)