iOS Plist文件如何体现与XML的相似性?
- 内容介绍
- 相关推荐
本文共计1031个文字,预计阅读时间需要5分钟。
iOS项目的Info.plist文件默认是二进制格式,而非纯文本的XML。很多人误以为修改XML后生效,这是错误的根源。Xcode中看到的可读内容,实际上是因为Xcode在编辑时自动将二进制格式转换为XML格式显示;保存时可能再次转换为二进制格式。如果使用Xcode外部工具(如VS Code)直接修改并保存,很容易出现问题。
- 用
plutil -s Info.plist可查看当前格式:输出xml1表示 XML,binary1表示二进制 - 强制转为 XML:
plutil -convert xml1 Info.plist;转回二进制:plutil -convert binary1 Info.plist - 二进制 plist 更紧凑、加载更快,系统运行时默认偏好二进制;XML 仅用于人工编辑和版本控制友好
XML 结构里 key 和 value 的类型必须显式声明
plist XML 不是自由格式的键值对,每个 <key> 后面必须紧跟一个带类型标签的 value,比如 <string>、<true/>、<integer>。漏掉类型或写错(比如把 <boolean>YES</boolean> 当作有效写法),会导致 CFPropertyListCreateFromXMLData 解析失败,App 启动直接 crash,错误日志里常出现 Could not parse property list data。
本文共计1031个文字,预计阅读时间需要5分钟。
iOS项目的Info.plist文件默认是二进制格式,而非纯文本的XML。很多人误以为修改XML后生效,这是错误的根源。Xcode中看到的可读内容,实际上是因为Xcode在编辑时自动将二进制格式转换为XML格式显示;保存时可能再次转换为二进制格式。如果使用Xcode外部工具(如VS Code)直接修改并保存,很容易出现问题。
- 用
plutil -s Info.plist可查看当前格式:输出xml1表示 XML,binary1表示二进制 - 强制转为 XML:
plutil -convert xml1 Info.plist;转回二进制:plutil -convert binary1 Info.plist - 二进制 plist 更紧凑、加载更快,系统运行时默认偏好二进制;XML 仅用于人工编辑和版本控制友好
XML 结构里 key 和 value 的类型必须显式声明
plist XML 不是自由格式的键值对,每个 <key> 后面必须紧跟一个带类型标签的 value,比如 <string>、<true/>、<integer>。漏掉类型或写错(比如把 <boolean>YES</boolean> 当作有效写法),会导致 CFPropertyListCreateFromXMLData 解析失败,App 启动直接 crash,错误日志里常出现 Could not parse property list data。

