剛接觸ios開發的童鞋應該會對于app版本号嗎有些疑問,因為target不僅僅在summary中有版本号,同樣在Info.plist等地方也有版本号碼的地方,一頭亂碼,不知嗎?其實xcode在summary中已經将app最基本的設定進行了全面的封裝,其餘的plist,build setting等地方會跟着summary設定的改變而改變。
Bundle display name app名字 在plist 中加一個 字元串
一個version,一個build,都是設定版本的地方,有什麼差別呢?
在ios中(Android等工程中也一樣),有兩種version,一種是 CFBundleVersion ("Bundle Version"),也就是我們看到的version,另一種是CFBundleShortVersionString ("Bundle version string, short"),也就是我們看到的Build。
普通情況下,我們隻使用version即可,設定為"1.0", "1.1", "2.0" , etc,但如果你要使用兩個版本号時候,需要将build設定為1,2,3...等遞增的整數,有什麼用呢?
version我們可以通過App Store、itunes或其它軟體看到,是給使用者看的,而build是我們在團隊開發中内部隻用的,隻有我們自己可以看到。比如團隊打算釋出1.0版本的時候,會釋出很多build版本供測試或QA團隊進行測試,你釋出了很多build,因為一直在修改着代碼,是以當你收到一條bug資訊時候,你怎麼知道是那個build引起的問題呢,這時候build版本号的有點就可以展現出來了,不是嗎。
我這裡有一段代碼,可以在xcode編譯時候自動增加build号碼。
先把 Info.plist 裡的版本号改成某個數字,然後 Targets → your target → Build Phases → Run Script 的地方加上:
[cpp] view plain copy print ?
- version=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $PRODUCT_SETTINGS_PATH`
- version=`expr $version + 1`
- /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $version" $PRODUCT_SETTINGS_PATH
- #/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $version" $PRODUCT_SETTINGS_PATH 這行代碼會讓version也自增,一般不需要