Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 编辑应用程序的.plist文件_Iphone_Ios_Bash_Shell_Plist - Fatal编程技术网

Iphone 编辑应用程序的.plist文件

Iphone 编辑应用程序的.plist文件,iphone,ios,bash,shell,plist,Iphone,Ios,Bash,Shell,Plist,我正在为cydia应用程序创建一个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.fla

我正在为cydia应用程序创建一个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
中写入“切换现在已关闭”

另一个文件com.mytoggle.toggle1-launch-when-toggle-is-off的作用正好相反:打开切换并写入“切换现在打开”

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

这是我的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>

有些事
什么

我想将
中的
替换为
,它将打开按钮。

在OSX中有一个很好的工具,称为PlistBuddy,因此您不必使用疯狂的sed或perl来更新这些值。(有关详细信息,请参阅。)

示例用法,切换名为“something1”的键的正确或错误:

/usr/libexec/PlistBuddy -c "Set :something1 true" /path/to/your.plist
/usr/libexec/PlistBuddy -c "Set :something1 false" /path/to/your.plist
因此,要解决您的问题,只需将打印到“scripty.txt”的echo替换为相应的PlistBuddy调用,以打开或关闭该键