1.首先我们要建立一个 脚本 Run Script (选中Target–>Build Phases –> +)
2.点击后会生成一个空的Run Script
3.把下面的代码贴到输入台中,代码我就不解释了
# Type a script or drag a script file from your workspace to insert its path.
if [ $CONFIGURATION == Release ]; then
echo "Bumping build number..."
plist=${PROJECT_DIR}/${INFOPLIST_FILE}
#increment the build number (ie 115 to 116)
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
shell脚本中的第一行是一个判断如果 configuration == Release 就往下执行,其中configuration 的值有两个Release 、Debug
4.这个时候你还可以给这个Run Script 双击改个名字,一个有意义的名字很重要
5.这个时候你可以试着打包一下,将调试模拟器改为真机占位(),选择菜单Product–>Archive进
行打包,完成之后回到General中再看build值已经加1了,那么恭喜你已经成功了。
6.如果没加1 怎么办呢,我们选择菜单View–>Navigators–>Show Report Navigator
可以看到下面的界面(界面截的不好变形了)
可以看到左边是每次的编译记录,右边的详情,大家可以看下,有黄色叹号的都是可能有问题或者已经有问题的,如果有代码洁癖的应该好好研究下这里,找到我们要的 Run Script ,这里我们可以在右上角的Filter里面输入 Bumping build number... 我们的Run Script 如果运行了一定会打印这个语句的,别问为啥。很幸运确实有。
7.点击右边的展开按钮,往下找我们会发现如下的日志:
Bumping build number...
Print: Entry, "CFBundleVersion", Does Not Exist
expr: syntax error
Set: Entry, "CFBundleVersion", Does Not Exist
File Doesn't Exist, Will Create: /Users/songjunlin/Downloads/sourcetree/ios_patient//Users/songjunlin/Downloads/sourcetree/ios_patient/Patient/Info.plist
Bumped build number to
发现确实有错误说我们的这个info.plist 没找到,那自然就不能加1了,这个解释很合理,这个即将创建的文件的路径也有点怪
8.既然是info.plist 文件有问题,就看这个文件的配置就好了
其实这个路径并没有错误要不然编译会有问题,我猜想只是这个路径我们的脚本认不出来应该和这个写法有关系 "${plist}",改成如下图的样式就可以了
在编译下build就会自增+1了
9.还有就是如果你的工程有和我一样的
那么为了主工程和service的Build一致,可以在service重复上面的就可以了