1.iOS 在系統(tǒng)設置中展示 App 版本,Build 等信息
某日閑的無聊疑苔,玩兒手機無意間發(fā)現(xiàn)一件在 iOS 系統(tǒng)設置中有趣的事兒甫匹。別人家的 App 都是這個樣子的
簡書是這個樣子
好奇下面這些信息是怎么來的。我又看了其他的 App,發(fā)現(xiàn)有的更是強大惦费。
Google 了一下兵迅,原來是 Setting.bundle
的作用。下面就介紹一下如何簡單的使用 Setting.bundle
實現(xiàn)簡書的效果薪贫。
1.在項目中添加 Setting.bundle
文件
New File...
的時候注意下添加的路徑恍箭,下面編寫腳本需要用到,建議直接根目錄即可瞧省。
2.編輯 Root.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string>版本信息</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>-</string>
<key>Key</key>
<string>version_preference</string>
<key>Title</key>
<string>Version</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>-</string>
<key>Key</key>
<string>build_preference</string>
<key>Title</key>
<string>Build</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
3.修改 Version 和 Build 的值
有兩種方法扯夭,一種是通過代碼的方法鳍贾。
在
AppDelegare.m
didFinishLaunchingWithOptions
方法或者需要的地方添加以下代碼
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
[[NSUserDefaults standardUserDefaults] setObject:version
forKey:@"version_preference"];
NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
[[NSUserDefaults standardUserDefaults] setObject:build
forKey:@"build_preference"];
推薦使用腳本自動設置 Version 和 Build 的值。
4.編輯腳本
#獲取Bundle Version
version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${version}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist"
#獲取Build
Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue ${Build}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist"
5.配置腳本
如下圖所示添加一個 Run Script
復制腳本內容到如下位置
運行工程交洗,然后去 iOS 系統(tǒng)設置查看變化(可能會出現(xiàn)延遲贾漏,可以嘗試殺掉系統(tǒng)設置重新查看)。