跳到正文

← 全部工具

给 iOS 和 Mac 开发者的免费工具

描述文件查看器

拖入 .mobileprovision(iOS、iPadOS、tvOS、watchOS、visionOS)或 .provisionprofile(macOS)文件,即可看到 App ID、团队 ID、过期时间和剩余天数、它是开发、Ad Hoc、App Store 还是企业描述文件、全部权限项、设备 UDID,以及证书的 SHA-1 指纹。文件只在浏览器里读取,不会上传。在 Mac 上,Xcode 把描述文件放在 ~/Library/Developer/Xcode/UserData/Provisioning Profiles。

不会上传任何内容。文件只在你的浏览器里由本页读取。描述文件里有团队 ID、设备 UDID 和证书,不应该交给服务器。

拖入 .mobileprovision 或 .provisionprofile 文件

也可以拖入 .entitlements 文件。只在浏览器里读取,不会上传。

使用方法

  • •描述文件是经过 CMS(PKCS #7)签名的文件,里面的 plist 以普通 XML 保存。本页定位从“<?xml”到“</plist>”的字节,用自带的 plist 解析器读取这一段。得到的 XML 与在 Mac 上运行 `security cms -D -i file.mobileprovision` 的输出相同。
  • •类型按四个键依次判断:ProvisionsAllDevices 为 true 是企业版(仅限 Mac 的描述文件则是 Developer ID)。有 ProvisionedDevices 列表时,get-task-allow 为 true 是开发版,为 false 是 Ad Hoc。没有设备列表时,get-task-allow 为 false 或 beta-reports-active 为 true 是 App Store 版。Mac 描述文件没有 get-task-allow,所以有设备列表算开发版,没有则算 App Store 版。其他情况显示为“无法判断”并列出信号,不去猜。
  • •剩余天数按你设备的时钟到 ExpirationDate 计算,取整天。
  • •证书指纹是 DeveloperCertificates 里每一项的 SHA-1,由浏览器的 Web Crypto 计算。只有证书能完整解析时,才显示其主题里的名称和有效期,否则不显示。
  • •拖入或粘贴的 .entitlements 文件(XML 或二进制 plist)会以“键 / 值”表格显示。

它做不到的事

  • •不校验描述文件上的苹果签名,所以分辨不出真实文件和被改过的文件。
  • •不检查你的 Mac 上有没有证书对应的私钥,也不检查设备是否仍在你的开发者账号里注册。
  • •不会把描述文件和构建好的 App 做对比。要查看 App 签名后的权限,请用 IPA 检查器,或运行 `codesign -d --entitlements - MyApp.app`。
  • •不能续期、修改或重新签名描述文件,这些要在 Xcode 或 Apple Developer 网站上完成。

常见问题

怎么查看 .mobileprovision 文件里的内容?
把它拖到本页,或在 Mac 上运行 `security cms -D -i file.mobileprovision`,输出的是同样的 XML plist。Xcode 16 及以后把下载的描述文件放在 ~/Library/Developer/Xcode/UserData/Provisioning Profiles,旧版本放在 ~/Library/MobileDevice/Provisioning Profiles。在构建好的 App 里,它就是 embedded.mobileprovision 文件。
怎么区分开发、Ad Hoc、App Store 和企业描述文件?
看三个键。ProvisionsAllDevices 为 true 是企业(In-House)描述文件。有 ProvisionedDevices 列表且 get-task-allow 为 true 是开发版;同样有列表但 get-task-allow 为 false 是 Ad Hoc。没有设备列表、get-task-allow 为 false(通常 beta-reports-active 为 true)是 App Store 分发描述文件,TestFlight 也用它。
为什么 Ad Hoc 包提示无法安装?
最常见的原因是设备的 UDID 不在描述文件的 ProvisionedDevices 列表里,或者描述文件已经过期。两项都可以在这里查看。先在 Apple Developer 账号里添加设备,再重新生成描述文件并重新构建:旧的描述文件不会带上新设备。
描述文件过期后会怎样?
用它签名的开发版和 Ad Hoc 版会在设备上无法启动,企业版 App 也一样。已经上架 App Store 的 App 不受影响,因为苹果会重新签名;只有下次上传时才需要有效的分发描述文件。开发和分发描述文件通常有效一年。
在这个页面打开描述文件安全吗?
文件不会离开你的浏览器,这个工具没有上传,也没有服务器端代码。描述文件里有团队 ID、设备 UDID 和证书的公开部分,不含私钥,但仍然不宜交给第三方服务器。
为什么会提示“entitlement not allowed by the provisioning profile”?
App 在 .entitlements 文件里申请了描述文件没有授予的权限,例如推送通知,或 App ID 没有开启的 App Group。把 .entitlements 文件粘贴到这里,与描述文件的权限表对比,然后在 App ID 上开启对应能力,再重新生成描述文件。

相关工具