编辑器或在没有 Xcode 的情况下以干净的方式打印 plist 的方法

Posted

技术标签:

【中文标题】编辑器或在没有 Xcode 的情况下以干净的方式打印 plist 的方法【英文标题】:Editor or way to print plist in a clean way without Xcode 【发布时间】:2012-02-28 16:24:54 【问题描述】:

我需要与不具备技术倾向的人分享来自 plist 的信息。是否有一个通用的 free 编辑器可以用来以类似于 Xcode 中呈现的方式查看 plist 信息?或者有没有办法打印出来?

换句话说,我想查看 plist 没有所有类似 xml 的标记,也没有使用 Xcode。

【问题讨论】:

【参考方案1】:

命令行选项用于查看 Plist文件:

仅供查看:使用plutil -p,以 JSON-like 格式打印属性列表的内容(该格式仅供人类使用) .

示例(附加 | open -tf 以在文本编辑器中查看输出):

plutil -p ~/Library/Preferences/com.apple.sidebarlists.plist
替代:使用/usr/libexec/PlistBuddy -c print,它以 javascript-object-literal-like 格式输出:

例子:

/usr/libexec/PlistBuddy -c print ~/Library/Preferences/com.apple.airplay.plist

警告: 如果 plist 具有包含 二进制数据 的属性,PlistBuddy 将以原始形式包含它(相比之下,同一文件中的非二进制属性会正确打印)。如果需要 XML 输出,请添加选项 -x

注意PlistBuddy:

可用于选择性地提取属性,使用:-分隔、区分大小写的属性路径;例如,/usr/libexec/PlistBuddy -c 'print :favorites:ShowRemovable' ~/Library/Preferences/com.apple.sidebarlists.plist能够从命令行修改 Plist 文件(包括但有限制地从以前导出的 XML 文件导入)。

详情请见/usr/libexec/PlistBuddy -h

【讨论】:

【参考方案2】:

自 Xcode 4 以来,独立的“属性列表编辑器”已消失,您可以使用免费的 Pref Setter,但最近一次更新是 4 年前。

要保存不带 xml 标记的内容,请参见以下示例:

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:[@"~/Library/Preferences/loginwindow.plist" stringByExpandingTildeInPath]];
[[dict description] writeToURL:[NSURL fileURLWithPath:[@"~/Desktop/loginwindow.txt" stringByExpandingTildeInPath]] atomically:YES encoding:NSUTF8StringEncoding error:nil];

【讨论】:

【参考方案3】:

您可以使用visual studio code 打开和编辑 Plist 文件。 只需在Visual Studio代码中安装一个扩展名为Binary Plist

二进制列表

出版商:大卫·尼科尔森

市场链接:https://marketplace.visualstudio.com/items?itemName=dnicolson.binary-plist

【讨论】:

【参考方案4】:

如果您不想为此使用臃肿的 XCode 4,有一种方法可以获取旧的 Property List Editor working on Mac OS X Lion。

【讨论】:

【参考方案5】:

作为 OS X 的一部分,有一个“属性列表编辑器”应用程序(或者曾经有,我现在不在我的机器上,所以无法检查)。

否则,您可以在大约半小时内写一篇!

【讨论】:

以上是关于编辑器或在没有 Xcode 的情况下以干净的方式打印 plist 的方法的主要内容,如果未能解决你的问题,请参考以下文章

在没有情节提要的情况下以编程方式添加容器视图?

如何在没有情节提要的情况下以编程方式实例化视图控制器

如何在没有 XML 的情况下以编程方式将片段添加到活动

在没有按钮连接的情况下以编程方式执行 Segue?

在没有 BHO 的情况下以编程方式确定 IE 窗口当前 URL

如何在没有任何按钮的情况下以编程方式关闭 UIAlertController?