iOS / Android / 移动开发

mobileprovision 查看读懂描述文件内容

选择本地描述文件,或载入合成示例。手动解析后查看概览、权限和字段树,再导出所需的 XML 副本。

mobileprovision 查看

描述文件

拖入一个 .mobileprovision 或 .provisionprofile 文件,最大 5 MiB。

尚未选择文件

解析结果

文件只在当前标签页读取,工具不会上传或保存输入。

选项

替换已知设备字符串并清空二进制数据;团队、应用等元数据仍可见。修改选项后需要重新解析。

选择文件后点击解析。

解析不验证签名、证书、吊销状态或安装资格。

导出结果是不带签名的 XML 副本,不能作为描述文件安装。

构建使用了错误的团队、测试设备无法安装,或者几个描述文件同名却有不同的到期日期时,mobileprovision 查看可以帮助你先查清手上的文件。建议从实际打包的应用里取出描述文件,再与开发者账号下载的版本核对。

描述文件解析按 CMS 结构定位内嵌的 XML,而不是在任意字节中搜一段看似正确的文本。现代系统可能以 DER-Encoded-Profile 为准,这里提供的是便于阅读的外层诊断视图,不能替代系统的签名判断。

为什么使用 mobileprovision 查看

从概览直接追溯原始字段

mobileprovision 查看把团队、应用标识与描述文件有效期集中到概览中,同时保留全部字段路径。遇到权限问题可切换到 Entitlements,分清布尔值、数组与字典,而不是只看一个含糊的状态标签。

描述文件容器展开为字段树,分别连接身份、日期和权限分支。

让导出与屏幕使用同一份脱敏结果

默认隐藏设备 UDID,并替换它们在其他字符串中重复出现的内容。导出时一并清空 data 数据,避免内嵌的二进制副本重新带出设备标识。团队和应用元数据仍保留,脱敏并不等于匿名化。

设备行在屏幕与导出文档中同时被遮挡,其他元数据仍然可见。

先找到实际打包的那份文件

01

分清真实文件与合成示例

从自己的应用包中取出 embedded.mobileprovision,再与手头的描述文件比较。示例没有签名人,只用来演示视图与字段类型,不是 Apple 签发的可安装文件。

02

改脱敏选项后重新解析

切换脱敏会清除旧结果并禁用导出,需再次点击解析,或按 Ctrl/Cmd + Enter。只切换概览、权限、字段树和 XML 视图时,不会改变解析内容。

03

按分支查看长列表

点击字典或数组的路径可折叠其后代,每次增加 50 行,避免设备列表一次占满页面。导出始终保留完整的当前副本;清空或替换文件前会预览,并可撤销一次。

定位签名问题背后的字段

团队与应用身份

同时显示 Name、UUID、TeamName 和 TeamIdentifier。Bundle ID 从 application-identifier 去掉第一个前缀片段推导,兼容 macOS 的备用键名;通配符原样保留,缺字段时不会猜一个默认值。

保留权限的数据类型

Entitlements 有独立视图,数组、字典、布尔值、整数、日期和二进制字段仍保留各自类型。描述文件中的权限表示允许范围,不等于应用最终签名中实际声明的权限,也不会自动检查两者是否匹配。

明确日期比较的时刻

创建和到期日期保留 UTC 原值,并记录本次解析时浏览器的当前时间。结果只区分到期、未到期和缺失,电脑时钟错误会影响比较;日期尚未到期绝不表示签名可信。

导出结构化的 XML 副本

通过 SignedData 容器找到内嵌数据,生成保留字段顺序与值类型的 plist。默认输出替换设备字符串,并将所有 data 内容清空;关闭脱敏重新解析后,可导出完整字段值。

可读、可信与可安装是不同判断

不核验签名或安装结果
本工具不验证 CMS 签名、证书链、吊销状态或 Apple 信任,也不判断设备能否安装应用。没有签名人的容器会单独提示;解析成功只说明内容符合本工具支持的容器与 XML 结构。
不解释内部 DER 授权语义
现代系统可能使用 DER-Encoded-Profile 作为依据,这里不会解析内部二进制语义或比较它与 XML 的一致性。未知字段仍按原值展示,不随意猜测用途,也不根据少数开关断言开发或分发类型。
输入格式有明确范围
一次读取一个内嵌 UTF-8 XML plist 的二进制 CMS SignedData 文件,支持定长、不定长 BER 与构造型字节串。原始 XML、二进制 plist、分离内容或加密 CMS 会被拒绝,不提供 IPA 解压、P12 或网址入口。
脱敏只覆盖指定内容
默认替换 ProvisionedDevices 中的标识及其在字符串值、键名中的重复出现,并清空全部二进制数据。名称、团队、Bundle ID 等元数据仍可识别来源;需要完整值时关闭选项并重新解析,分享前仍应检查内容。
资源预算与导出边界
文件最大 5 MiB,每层解析器最多 10000 个节点、64 层,序列化结果最多 10 MiB。重复键和不符合类型的值会报错。导出的 plist 已去掉签名外壳,不能修改到期日后当作续期文件,也不能重新签名或安装。

mobileprovision 查看常见问题

mobileprovision 文件怎么打开查看?

选择本地文件后点击解析。工具先检查 CMS 结构,再读取里面的 XML plist。文本编辑器有时能显示文件中的一部分内容,但读到 XML 片段并不能证明整个文件符合描述文件容器结构。

怎么查看描述文件里包含哪些设备 UDID?

在字段树中展开 ProvisionedDevices。默认显示占位值并保留设备数量;如需核对真实设备标识,请关闭脱敏并重新解析。字段不存在时,不会直接解释为所有设备均可安装。

如何检查描述文件是否过期?

在概览中核对 ExpirationDate 与本次比较时间即可判断记录的期限是否已过。到期日期并不能说明证书、签名或描述文件当前是否被 Apple 接受,完整签名判断仍需使用平台工具。

怎么知道 IPA 打包时使用了哪个描述文件?

可自行解压开发或 Ad Hoc 的 IPA,在 Payload 下的应用包里找到 embedded.mobileprovision。本页不负责解包;从 App Store 分发的应用可能不包含该文件,不能仅凭文件缺失认定构建有问题。

可以修改描述文件的到期日期吗?

编辑导出副本中的日期无法延长 Apple 签发的描述文件。XML 副本没有 CMS 签名,只供查看。需要更新时应通过开发者账号或 Xcode 重新生成合适的文件,再使用新描述文件构建应用。

还有描述文件查看细节需要补充?

从字段证据开始排查

使用 mobileprovision 查看核对当前构建实际使用的团队、设备清单与权限。保留 XML 作为排查记录;需要确定信任、证书或安装状态时,再转到 Apple 的签名工具完成验证。