iOS运行脚本更新设置root.plist,但更改未反映在设置中

时间:2014-05-27 02:25:29

标签: ios objective-c xcode settings.bundle run-script

我有一个iOS应用程序,其中我有一个设置包。 root.plist是:

Settings.bundle's root.plist

当我手动更改Item6>Titles>Item0的值并运行它时,它会反映设备的应用设置页面中的更改。

现在,我做了一个运行脚本来将构建版本设置为此字段

build=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" 
${PROJECT_DIR}/${INFOPLIST_FILE}`
/usr/libexec/PlistBuddy "$SRCROOT/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:6:Titles:0 $build"

Root.plist中项目的指定值已更改(我可以通过Xcode看到) 但它似乎并没有反映在设备上的应用程序设置中。

知道为什么吗?对这个奇怪的问题有什么解决方法?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

Root.plist允许您指定默认值。默认值仅在设置应用程序中使用(或以编程方式访问NSUserDefaults时),只要没有实际值设置为属性,无论是以编程方式还是由用户设置。一旦设置了值(您提到,您为了测试目的而手动设置版本),将忽略默认值。

只需删除您的应用(设置也将被删除)并重新启动它。设备上的设置应用将显示新的默认值。