成果展示
1、创建Setttings.Bundle
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>DefaultValue</key>
<string>1.0</string>
<key>Key</key>
<string>app_version</string>
<key>Title</key>
<string>版本</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
<dict>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>File</key>
<string>UserProtocol</string>
<key>Key</key>
<string></string>
<key>Title</key>
<string>用户协议</string>
<key>Type</key>
<string>PSChildPaneSpecifier</string>
</dict>
<dict>
<key>File</key>
<string>PravacyProtocol</string>
<key>Key</key>
<string></string>
<key>Title</key>
<string>隐私协议</string>
<key>Type</key>
<string>PSChildPaneSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
3、创建Root.plist中的两个子面板中,file对应的plist文件:
UserProtocol.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>New item</key>
<string></string>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>用户啊用户</string>
</dict>
</array>
</dict>
</plist>
PravacyProtocol.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>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>隐私啊隐私</string>
</dict>
</array>
</dict>
</plist>
4、保证Root.plist UserProtocol.plist PravacyProtocol.plist 都在Settings.Bundle包中
5、脚本读取版本号
Build Phase,“+”icon
6、添加脚本
version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/SLLiveChild/Info.plist`
/usr/libexec/PlistBuddy "$SRCROOT/SLLiveChild/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:0:DefaultValue $version"
注释:
PreferenceSpecifiers:0:DefaultValue的意思是在PreferenceSpecifiers这个array下的第0个item的DefaultValue
最后
参考:
http://blog.rocketmade.com/post/60213039759/how-to-automatically-add-version-and-build-number
http://stackoverflow.com/questions/6851660/version-vs-build-in-xcode