2013-07-27 87 views
4

我正在爲設置中的開/關按鈕創建cydia應用程序的sbsettings切換。編輯應用程序的.plist文件

我已經從瘋狂的cydia回購下載了「SBsettings Scripty」,這是一個預置的開關。當按鈕打開和關閉時,我需要編寫要執行的命令。

有2個文件進行編輯:

1- com.mytoggle.toggle1推出-時,肘是上

它默認包含:

#!/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-off-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> 

我想</true>這將打開該按鈕來代替<key>something1</key></false>

回答

0

在OS X中實際上有一個很棒的工具,叫做PlistBuddy,所以你不必做瘋狂的sed或者perl來更新這些值。 (有關詳細信息,請參閱its manual。)

樣品使用,切換您的密鑰命名爲「something1」真的還是假的:

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

因此,解決你的問題,只是更換反響,打印到「指令碼.txt「與適當的PlistBuddy調用打開或關閉該鍵。