PlistBuddy介绍

1,120 阅读1分钟

plist文件并非直接的代码,不能通过shell脚本直接对其操作,这时候就需要一个工具了PlistBuddy,PlistBuddy 是 Mac 系统中一个用于命令行下读写 plist 文件的工具。可以用来读取或修改 plist 文件的内容。只是一个工具,仅此而已

查看帮助 PlistBuddy

/usr/libexec/PlistBuddy --help

打印info.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>CFBundleDevelopmentRegion</key>

    <string>en</string>

</dict>

</plist>
  • 开始打印
/usr/libexec/PlistBuddy -c "print" info.plist

image.png

  • 添加普通字段:
/usr/libexec/PlistBuddy -c 'Add :build string 1' info.plist

image.png

  • 添加数组
# 添加key
/usr/libexec/PlistBuddy -c 'Add :buildVersion array' info.plist
# 再添加value
Add :buildVersion: string 1' info.plist
Add :buildVersion: string 2' info.plist

image.png

# 先添加key值
/usr/libexec/PlistBuddy -c 'Add :Application dict' info.plist
# 添加value值,

  • 字段也好 字典也好 数组也好 都可直接移除
/usr/libexec/PlistBuddy -c 'Delete :buildVersion' infodd.plist

/usr/libexec/PlistBuddy -c 'Set :Application:build 3' info.plist

/usr/libexec/PlistBuddy -c 'Print :Application' infodd.plist

合并

# 将A.plist 合并到 B.plist中
/usr/libexec/PlistBuddy -c 'Merge A.plist'  B.plist