Property List 类型海关 · 外壳不等于值类型
XML 文本与 bplist00,承载的是同一套受限类型。
plist 是带类型的值树,不是“随便一段 XML”。这里先识别序列化外壳,再清点 Apple 原生类型、查看 Info.plist 身份字段,并把转成 JSON 时发生的类型变化逐项申报。
<?xml …><plist>人可读文本
bplist00紧凑二进制外壳
key = value; dictionary旧式 ASCII 格式
类型对象树
Info.plist 字段检查站
CFBundleIdentifier · CFBundleDisplayName · CFBundleExecutable
CFBundleShortVersionString · CFBundleVersion
MinimumOSVersion · CFBundleSupportedPlatforms
CFBundleURLTypes · LSApplicationQueriesSchemes
NS…UsageDescription 字符串
entitlements 与代码签名属于其他证据
类型护照
<dict>DictionaryObject键必须是字符串<array>ArrayArray保持元素顺序<integer>/<real>NSNumberNumber原始元素意图可能合并<date>DateDateJSON 没有原生日期类型<data>DataUint8ArrayJSON 没有原生字节类型<true/>/<false/>Booleanboolean可直接表示JSON 类型申报
__plistType: date + iso8601带标签对象__plistType: data + base64带标签对象JavaScript Number原始标签可能丢失JSON object直接映射解析器可表示由目标 Apple 消费方确认Binary / XML 对照
交给原生 plutil 复核
$ plutil -lint Info.plist$ plutil -p Info.plist$ plutil -extract CFBundleIdentifier raw Info.plist$ plutil -type BuildDate Info.plist$ plutil -convert xml1 -o Info.xml.plist Info.plist