使用agvtool更改app version/build

现在开发的项目,使用的target太多,每次一到发测、上传就很头疼。总得一个个target去修改新的版本号。直到发现,爸爸居然有一个agvtool的工具。

先上个官方链接

1、首先,需要确保工程中的Info.plist存在两个Key——CFBundleVersionCFBundleShortVersionString。不过,貌似一般都是有的。

2、需要修改build setting的一些配置。Current Project VersionVersioning System。需要将Versioning System设置成Apple Generic。这样才能确保正常使用agvtool

p3

3、打开工程目录,即.xcodeproj的所在。这时候就可以来使用command line了。


agvtool使用的一些command line。其中marketing-version对应是工程中的version,而version则对应着工程中的build.

1)查看当前版本

1
2
3
4
5
6
7
8
// build
agvtool what-version
// version
agvtool what-marketing-version
// build
agvtool vers
// version
agvtool mvers

2)自动增加版本号

1
agvtool next-version -all
1
agvtool bump -all

二者都是给build递增。version的话,没有递增的命令。-all可加可不加,但是不附带-all的话,会出现设置成功,但是打开工程看build的话,确是没有任何变化,还是旧版本的build。此时再去agvtool bump -all或者agvtool next-version -all。所有build,都会变化,而且是在上一部设置成功的数值上+1。此步已跪。。。。找到原因后,再来更新。。。

3)设置新版本号

1
2
3
4
// build
agvtool new-version -all 1.0.0
// version
agvtool new-marketing-version 1.0.0

4) help

1
agvtool help

如果想了解更多,直接一句command line——agvtool help,可以查看相关的使用。


中途遇到的坑

在使用的过程,发现某个targetversionbuild都没有任何变化。错误提示一直显示——Cannot find "$(SRCROOT)/Info.plist。后来在build settingInfo.plist目录设置,发现多了$(SRCROOT),去掉后,agvtool new-marketing-version x.x.xagvtool new-version x.x.x -all。完美解决。

PS:后续有任何发现,再继续来更新吧。。

p4