编辑应用程序的 .plist 文件

Posted

技术标签:

【中文标题】编辑应用程序的 .plist 文件【英文标题】:Editing .plist file of an app 【发布时间】:2013-07-27 16:37:33 【问题描述】:

我正在为 cydia 应用程序创建一个 sbsettings 切换开关,并在设置中使用开/关按钮。

我从 insanely 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 正好相反:打开切换开关并写下“切换开关现在打开”。

我正在尝试替换此脚本;我不想在 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>

我想将&lt;key&gt;something1&lt;/key&gt; 中的&lt;/false&gt; 替换为&lt;/true&gt;,这将打开按钮。

【问题讨论】:

【参考方案1】:

实际上在 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

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

【讨论】:

以上是关于编辑应用程序的 .plist 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用Plist编辑器——简单入门指南

使用Plist编辑器——简单入门指南

无法编辑程序生成的 iOS plist

我可以在我的应用程序之外使用 plist 文件做啥?

Plist文件编辑工具PlistEdit Pro 1.9.1动态调试分析

Apple 的 plist 编辑器入门指南:基础操作与高级功能详解