淺談CFBundleVersion與 CFBundleShortString
定義
每次開發(fā)新版APP兽叮,我們必須要提供一個(gè)新的版本號(version number)用來和前一個(gè)版本作區(qū)分硬纤。Version number就相當(dāng)于我們APP每一次釋放到APP Store時(shí)的名字。然而钮热,在成功release到市場之前,我們可能需要向APP Store提交多次(例如是晨,被拒竟稳,或者提交后又發(fā)現(xiàn)了bug,需要重新提交)——在這里沦补,文檔中把每一次提交稱為一次build该默。每次build必須有一個(gè)獨(dú)立的build number以示區(qū)分。因此策彤,每次更新的所有build構(gòu)成了一個(gè)“釋放隊(duì)列”(release train)栓袖。對于iOS應(yīng)用而言匣摘,同一個(gè)release train中的build不可重名,但不同release train之間可以裹刮;對于macOS應(yīng)用而言音榜,無論是否屬于同一個(gè)release train,重名都是不允許的捧弃。
查看位置
- Target tab
如圖所示赠叼,Version 表示版本號,build表示build number违霞。一般對版本號和build號在這里進(jìn)行更改嘴办,但是它們在plist中也有對應(yīng)的位置。
- plist
如圖所示买鸽, CFBundleVersion在此對應(yīng) version number涧郊,CFBundleVersionStringShort在此對應(yīng) build number。
兩種命名習(xí)慣
無論是build number 還是version number 都由數(shù)字和點(diǎn)號組成眼五,每個(gè)數(shù)字和小數(shù)點(diǎn)成為這個(gè)number的一個(gè)“組件”妆艘。兩種number都最多不能超過三個(gè)組件,且最多不超過18個(gè)字符看幼。
檢查你的version number and build number
- 每個(gè)版本的版本號都要比前一個(gè)更高批旺。
- 對同一個(gè)版本的應(yīng)用,每一次提交的build號都要比前一次更高诵姜。對于iOS應(yīng)用汽煮,不同版本中的build號可以有重復(fù)的。但是對于macOS應(yīng)用棚唆,無論是否是同一個(gè)版本逗物,每一次提交使用的build號都不允許重復(fù)!
- extension和他們的主app都必須使用同一個(gè)build number 和 version number瑟俭。