问题标签 [plistbuddy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - PlistBuddy - 添加数组项在终端中有效,但在 bash 脚本中无效
我尝试plistbuddy
通过脚本添加自定义字体数组字段来操作我的 Info.plist 文件。命令在终端中成功执行(两者:创建数组条目并添加条目):
正如预期的那样,这会产生很好的 plist 文件:
但是在 bash 脚本 ( test.sh
) 中执行相同的命令时会失败:
在这种情况下,仅创建数组,但添加条目失败。我只得到没有那么多描述性错误:
产生这个(只有数组,没有条目):
为什么会发生这种情况,为什么只使用向数组添加条目的命令?我plistbuddy
在许多其他地方(在 bash 脚本中)使用,设置、添加和删除简单字段等命令都可以正常工作。
我在脚本方面不是那么好,所以很可能我错过了某种转义或其他 bash 特定的细节。
ios - Windows 上的 PlistBuddy
我正在将我们的 Xamarin 构建基础架构移动到基于 Windows 的过程中,我遇到了一个问题,即我们的构建脚本当前使用 PlistBuddy 来读取和写入应用程序的 Info.plist 文件。
显然 PlistBuddy 不会在 Windows 上运行。
有没有人见过在 Windows 上与 Plist 文件交互的任何其他解决方案?我见过一些使用 GUI,但我们需要它来拥有 CLI。
arrays - 使用 plistBuddy 获取值数组
输出:
如何获取数组中的第一项?
ios - Ant 脚本 - 如何从 plist 文件中打印一些文本并将其分配给属性
我正在使用 Ant 从 iOS 应用程序中获取捆绑包号。相关脚本如下:
我可以从 exec 中看到正确的结果。但是来自echo的消息总是0。我觉得PlistBuddy->Print没有将结果设置为resultproperty。我对吗?如果是这样怎么做?
提前致谢。
bash - 以 $HOME 开头的 plist 中存储的路径不会在 bash 脚本命令中扩展
我正在编写一个 bash 脚本来自动化我们的构建过程。我需要将路径存储在设置 plist 文件中,并使用 plistbuddy 在 shell 脚本中检索它。
下面的键指定存档将存储的路径,桌面上的文件夹:
在我的 shell 脚本中,我访问了密钥:
正如我所料,varARCHIVES
没有扩展到。/Users/*username*/Desktop/Archives/
我通过创建一个具有相同字符串的 var 进行了测试:
由于此脚本将在未知用户帐户下运行,我如何强制 $HOME 正确展开。
bash - 如何使用命令替换来使用 PlistBuddy
我正在尝试以下脚本
上述脚本的输出是Unrecognized Command
OUTPUT 变量的值为
-c “打印:Ant-Conversion” -c “打印:Newitem” -c “打印:区域” -c “打印:联系人”
2>&1添加它是为了打印错误(不存在键)和正确的输出。
keys-updated.txt包含要从 plist 文件中提取的密钥列表(不一定所有都存在于 plist 中)
解决方案(不工作)
尝试了@Nahuel 的解决方案。然而这条线
PLISTBUDDY=$(eval set -- $OUTPUT;/usr/libexec/PlistBuddy "$@" "$FILE")
仅提供plist 中不存在的键列表
这是我在使用@Nahuel 的解决方案后收到的输出
打印:条目,“状态”,不存在
打印:条目,“通知”,不存在
打印:条目,“IsMvnMgrSupported”,不存在
打印:条目,“BuildsetFile”,不存在
打印:条目“RollupClocReportToModule”不存在
打印:条目,“分支”,不存在
打印:条目,“Ant-Conversion”,不存在
打印:条目,“IndexTag”,不存在
打印:条目,“WO”,不存在
打印:条目,“标签”,不存在
打印:条目,“Newitem”,不存在
关于直接在命令行上使用命令
管理员:桌面管理员 $。 /usr/libexec/PlistBuddy -c “打印:区域” -c “打印:联系人” -c “打印:电子邮件” -c “打印:语言” -c “打印:位置” -c “打印:名称” -c "Print :Notes" -c "Print :Purpose" -c "Print :Track" -c "Print :Type" -c "Print :URL" -c "Print :Status" -c "Print :Notify" -c "打印:IsMvnMgrSupported” -c “打印:BuildsetFile” -c “打印:RollupClocReportToModule” -c “打印:Branches” -c “打印:Ant-Conversion” -c “打印:IndexTag” -c “打印:WO” -c “打印:标签”-c “打印:Newitem”/Users/admin/Desktop/plist-script-output/plist-data/ActiveMQ.plist
输出结果是
监测。呱呱坠地 cddcdcdc 。爪哇。dvfvfvfvfvfvfv。活动MQ。cddcdcdcdc 。来自 Apache Software Foundation 的消息传递 (JMS) 框架。
基础设施 。框架 。jdbcjdbcdjdcnnjn 。打印:条目,“:状态”,不存在。打印:条目,“:通知”,不存在。打印:条目,“:IsMvnMgrSupported”,不存在。打印:条目,“:BuildsetFile”,不存在。打印:条目,“:RollupClocReportToModule”,不存在。打印:条目,“:分支”,不存在。打印:条目,“:Ant-Conversion”,不存在。打印:条目,“:IndexTag”,不存在。打印:条目,“:WO”,不存在。打印:条目,“:标签”,不存在。打印:条目,“:Newitem”,不存在。
bash - 如何使用 MAC OSX 中的“默认值”从 plist 文件中一次读取多个值
我有一个 plist 文件,其中包含像
根据默认手册页,可以像这样从 plist 中读取密钥
例如
但是我想使用默认值读取多个键。
以上只产生 的输出Area
,而不是City
和的输出Country
。
谁能建议我如何仅使用默认值一次从 plist 中读取多个键?
macos - 如何将部分 plist 存储到文件中,然后将其合并到另一个 plist?
我需要提取 plist 的一部分,将其存储在文件中,然后将保存的部分加载/合并到另一个 plist 中,用其随附的键和值覆盖现有键。
我知道这PlistBuddy
可以极大地帮助该过程,因为您可以通过以下方式读取密钥及其子密钥的一部分:
/usr/libexec/PlistBuddy -c "Print :KeyName" /path/to/some.plist
但尚不清楚您是否可以在这里简单地使用文件重定向来保存输出,然后通过Merge
带有随附 plist 插入的命令重新加载它。
将非常感谢命令的示例!
bash - 使用 PlistBuddy 处理 hdiutil 输出
我正在尝试解析在Mac 终端上hdiutil
使用的输出PlistBuddy
(不使用临时文件),但遇到了一些问题。我尝试了以下方法:
命令 1
hdiutil info -plist | PlistBuddy -c "Print"
输出:
打印 PlistBuddy 的帮助
命令 2
PlistBuddy -c "Print" $(hdiutil info -plist)
输出:
File Doesn't Exist, Will Create: <?xml
Invalid Arguments
我不擅长 bash,但我认为 PlistBuddy 不接受 STDIN 但只接受.plist
文件作为输入可能是个问题。有什么我遗漏的东西还是我必须创建一个临时文件?