在XCode11下調用
/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' XXXX/XXXX-Info.plist
返回結果爲
CURRENT_PROJECT_VERSION
並不是想象中的BundleVersion。
如何解決?
搜google,找stackoverflow,發現真的有解決辦法,但是很繁瑣,各種正則取值。複雜的方法而且和內容綁定的太耦合了。這不是我想要的解決辦法。
後來轉念一想,爲何不手動把“CURRENT_PROJECT_VERSION”替換爲想要的版本號呢?
於是把“CFBundleVersion”對應的值(“CURRENT_PROJECT_VERSION”)手動改爲了“172”,這樣就取出來了。如下圖所示
於是乎再調用取值方法,取出來了,把值加1,再存入plist文件,大功告成(自動打包腳本的一個步驟)。
寫在後面:
XCode通過CURRENT_PROJECT_VERSION隱藏一些內容,讓我們不必再關心CFBundleVersion的值。猜測是XCode工具自動進行了+1操作。想法不錯,但是我想要自己控制CFBundleVersion的值,於是乎就改了該值,如果不關心該值,大可以以後不必取該值了,一切交給XCode自己管理了(提交到appstore的包,CFBundleVersion的值不能重複,所以要手動改該值,現在猜測系統會再每次打包後自動改變CFBundleVersion的值,以達到能提交appstore的目的。)。
同理獲取CFBundleShortVersionString的值,也需要修改plist文件,例如原始值如下:
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
修改爲
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>