iPhone開發--XCode11下獲取CFBundleVersion和CFBundleShortVersionString

在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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章