编辑应用程序的.plist文件

时间:2013-07-27 16:37:33

标签: iphone ios bash shell plist

我正在为设置了开启/关闭按钮的cydia app创建一个sbsettings切换。

我从疯狂的cydia repo下载了“SBsettings Scripty”,这是一个预制的切换。当按钮打开和关闭时,我需要编写执行命令。

有2个要编辑的文件:

1- com.mytoggle.toggle1-launch-when-toggle-is-on

默认包含:

#!/bin/sh
rm /var/mobile/Library/Preferences/com.mytoggle.toggle1.flagfile
echo "the toggle is now OFF" >>/var/mobile/scripty.txt

这会关闭切换开关并在scripty.txt中写入“切换现在为OFF”。

另一个文件com.mytoggle.toggle1-launch-when-toggle-is-off完全相反:将开关打开并写入“切换现在开启”。

我正在尝试替换此脚本;而不是在scripty.txt中写文本,我想更改应用程序的.plist中的值。

这是我的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>something1</key>
    <false/>
    <key>something2</key>
    <false/>

</dict>
</plist>

我想将</false>的{​​{1}}替换为<key>something1</key>,这会打开按钮。

1 个答案:

答案 0 :(得分:0)

在OS X中实际上有一个很棒的工具,叫做PlistBuddy,所以你不必疯狂的sed或perl来更新这些值。 (有关详细信息,请参阅its manual。)

示例用法,将名为“something1”的键切换为true或false:

/usr/libexec/PlistBuddy -c "Set :something1 true" /path/to/your.plist
/usr/libexec/PlistBuddy -c "Set :something1 false" /path/to/your.plist

因此,要解决您的问题,只需将打印到“scripty.txt”的回声替换为相应的PlistBuddy调用,即可打开或关闭该键。