在Shell脚本中获取Xcode构建版本号

3

我有一个用户定义的项目设置(KEY/VALUE),像这样:

LATEST_BUILD_NUMBER       2.2.2.2

在我的Info.plist文件中,我已经设置了bundle version(CFBundleVersion)的键值对,如下所示。
Bundle version     ${LATEST_BUILD_NUMBER}

我正在创建一个shell脚本来为我的所有目标执行构建。我想在我的脚本中获取值“2.2.2.2”。这是我尝试的方法:

INFO_PLIST_FULL_PATH="${PROJDIR}/${TARGET_NAME}-Info.plist"
echo plist path ${INFO_PLIST_FULL_PATH}

TARGET_BUILD_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print ${BUILD_NUMBER}" $INFO_PLIST_FULL_PATH)
echo version_number ${TARGET_BUILD_VERSION_NUMBER}

当我执行此操作时,plist路径的输出正确,但TARGET_BUILD_VERSION_NUMBER的输出是"${LATEST_BUILD_NUMBER}",而不是"2.2.2.2"。

如何获取变量名的值而不是变量名本身?

1个回答

0

Xcode在将文件复制到构建产品中之前不会替换值。因此,转到源代码:从*.xcodeproj/project.pbxproj文件中获取该值。您应该能够通过快速搜索找到其中的当前值。然后,您只需设计一个正则表达式来剥离它。


实际上,在脚本中,我首先执行xcodebuild命令,然后尝试查找此信息。 我需要此信息来为每个构建号创建一个目录,以保存.ipa文件。 过程是xcodebuild->查找版本->创建目录->将packageApplication打包到该目录中。 到那时,文件不应该已经被复制了吗? - Bittu
文件将位于*.app/Contents/目录中。最简单的方法是添加一个“运行脚本”构建阶段,因为这样您就可以访问一堆很棒的Xcode构建变量,例如$TARGET_BUILD_DIR - Jeremy W. Sherman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接