淺談CFBundleVersion與 CFBundleShortString
定義
每次開發新版APP,我們必須要提供一個新的版本號(version number)用來和前一個版本作區分。Version number就相當于我們APP每一次釋放到APP Store時的名字。然而,在成功release到市場之前,我們可能需要向APP Store提交多次(例如,被拒,或者提交后又發現了bug,需要重新提交)——在這里,文檔中把每一次提交稱為一次build。每次build必須有一個獨立的build number以示區分。因此,每次更新的所有build構成了一個“釋放隊列”(release train)。對于iOS應用而言,同一個release train中的build不可重名,但不同release train之間可以;對于macOS應用而言,無論是否屬于同一個release train,重名都是不允許的。
查看位置
- Target tab
如圖所示,Version 表示版本號,build表示build number。一般對版本號和build號在這里進行更改,但是它們在plist中也有對應的位置。
1111.png
- plist
2222.png
如圖所示, CFBundleVersion在此對應 version number,CFBundleVersionStringShort在此對應 build number。
兩種命名習慣
無論是build number 還是version number 都由數字和點號組成,每個數字和小數點成為這個number的一個“組件”。兩種number都最多不能超過三個組件,且最多不超過18個字符。
檢查你的version number and build number
- 每個版本的版本號都要比前一個更高。
- 對同一個版本的應用,每一次提交的build號都要比前一次更高。對于iOS應用,不同版本中的build號可以有重復的。但是對于macOS應用,無論是否是同一個版本,每一次提交使用的build號都不允許重復!
- extension和他們的主app都必須使用同一個build number 和 version number。