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
增
- 添加普通字段:
/usr/libexec/PlistBuddy -c 'Add :build string 1' info.plist
- 添加数组
# 添加key
/usr/libexec/PlistBuddy -c 'Add :buildVersion array' info.plist
# 再添加value
Add :buildVersion: string 1' info.plist
Add :buildVersion: string 2' info.plist
# 先添加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