plist 文件常见的格式是 xml,但事实上还有多种格式,参见 plistutil 命令的帮助文档,man plistutil 即可。此处不赘述。
苹果这个文档可以推断出一些事实:
- xx.xcodeproj/project.pbxproj 是 old-style ASCII property list 文件
- NSLog 或 po 出的 NSArray 或 NSDictionary 也是 old-style ASCII property list 格式
顺便,
/usr/libexec/PlistBuddy 可以读取 old-style ASCII property list 文件,
但是,从2019年的某个 macOS 版本后,这个命令修改这类文件会导致整个文件被改为 xml 格式,相当于默认带了 -x 选项。
这个变更有点费解,估计是苹果在底层逐步废弃 old-style 导致的
plutil -lint 对 old-style 已经失效。苹果爸爸的 deprecation 操作产生了一系列影响。但是苹果爸爸仍不肯将 Xcode 创建的工程文件修改为 xml 格式。不知为什么固守。