我可能在这里遗漏了一些简单的东西。我试图仅在归档我的应用程序(为 TestFlight 部署做准备)时自动增加 XCode 4.4 中的内部版本号。我有一个在目标上运行并成功更新每个构建的 info.plist 文件的工作 shell 脚本。我用于归档的构建配置名称为“Ad-Hoc”。
这是脚本:
if [ $CONFIGURATION == Ad-Hoc ]; then
echo "Ad-Hoc build. Bumping build#..."
plist=${PROJECT_DIR}/${INFOPLIST_FILE}
buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
if [[ "${buildnum}" == "" ]]; then
echo "No build number in $plist"
exit 2
fi
buildnum=$(expr $buildnum + 1)
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
echo "Bumped build number to $buildnum"
else
echo $CONFIGURATION " build - Not bumping build number."
fi
该脚本会适当地更新 plist 文件,并在我每次归档时反映在 XCode 中。问题是归档过程中产生的 .ipa 文件仍然显示以前的内部版本号。我尝试了以下解决方案但没有成功:
- 构建前清理
- 在构建之前清理构建文件夹
- 将 Run Script 阶段移至 Build Phases 中的 Target Dependencies 步骤之后
- 在我的方案中将脚本作为运行脚本操作添加为预操作
无论我做什么,当我查看构建日志时,我都会看到 info.plist 文件正在作为最初的步骤之一进行处理。它总是在我的脚本运行和更新内部版本号之前,我假设这就是为什么内部版本号在 .ipa 文件中永远不会是最新的。
有没有办法在处理 info.plist 文件之前强制运行运行脚本阶段?