我可能在这里错过了一些简单的东西.我只是在归档我的应用程序时(为准备TestFlight部署)尝试在XCode 4.4中自动增加我的内部版本号.我有一个在目标上运行的工作
shell脚本,并成功更新每个构建的info.plist文件.我的归档构建配置名称为“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文件仍然显示以前的内部版本号.我尝试了以下解决方案但没有成功:
>构建前清洁
>在构建之前清理构建文件夹
>将“运行脚本”阶段直接移至“构建阶段”中的“目标依赖关系”步骤之后
>在我的方案中将脚本添加为“运行脚本”操作作为预处理
无论我做什么,当我查看构建日志时,我发现info.plist文件正在作为最初的步骤之一进行处理.它始终在我的脚本运行和更新构建号之前,我认为,为什么构建号在.ipa文件中永远不会是最新的.
有没有办法强制运行脚本阶段在处理info.plist文件之前运行?
最佳答案 在Xcode 4.4.1中我创建新目标并添加到此目标构建阶段“运行自定义脚本”,它更新主目标Plist.而且,您应该将此目标添加到主目标的依赖项中