如今開發的項目,使用的target
太多,每次一到發測、上傳就很頭疼。總得一個個target
去修改新的版本號。直到發現,爸爸
竟然有一個agvtool
的工具。html
先上個官方連接git
一、首先,須要確保工程中的Info.plist
存在兩個Key
——CFBundleVersion
和CFBundleShortVersionString
。不過,貌似通常都是有的。github
二、須要修改build setting
的一些配置。Current Project Version
和Versioning System
。須要將Versioning System
設置成Apple Generic
。這樣才能確保正常使用agvtool
。xcode
三、打開工程目錄,即.xcodeproj
的所在。這時候就能夠來使用command line
了。app
agvtool
使用的一些command line
。其中marketing-version
對應是工程中的version
,而version
則對應着工程中的build
.工具
1)查看當前版本ui
// build agvtool what-version // version agvtool what-marketing-version // build agvtool vers // version agvtool mvers
2)自動增長版本號spa
agvtool next-version -all
agvtool bump -all
兩者都是給build
遞增。version
的話,沒有遞增的命令。-all
可加可不加,可是不附帶-all
的話,會出現設置成功,可是打開工程看build
的話,確是沒有任何變化,仍是舊版本的build。此時再去agvtool bump -all
或者agvtool next-version -all
。全部build
,都會變化,並且是在上一部設置成功的數值上+1。此步已跪。。。。找到緣由後,再來更新。。。3d
3)設置新版本號code
// build agvtool new-version -all 1.0.0 // version agvtool new-marketing-version 1.0.0
4) help
agvtool help
若是想了解更多,直接一句command line
——agvtool help
,能夠查看相關的使用。
中途遇到的坑
在使用的過程,發現某個target
的version
和build
都沒有任何變化。錯誤提示一直顯示——Cannot find "$(SRCROOT)/Info.plist
。後來在build setting
的Info.plist
目錄設置,發現多了$(SRCROOT)
,去掉後,agvtool new-marketing-version x.x.x
,agvtool new-version x.x.x -all
。完美解決。
PS:後續有任何發現,再繼續來更新吧。。
順便推廣下本身的blog
:https://addicechan.github.io/