iOS开发中,
embedded.mobileprovision
描述文件包含了证书信息,如调试设备UDID、Entitlements、AppIDName、DeveloperCertificates等大量关于此安装包和证书的信息,此文件是二进制格式,无法直接打开
.ipa
的安装包,后缀改为 .zip
,解压后 payload/APP名称
右键显示包内容,可以获取 embedded.mobileprovision
描述文件
可以利用命令行工具查看其相关信息,比如证书到期时间等
1、查看描述文件到期时间
# 查看描述文件到期时间
$ security cms -D -i embedded.mobileprovision
复制代码
可以看到描述文件到期时间,如下:
<key>ExpirationDate</key>
<date>2021-10-26T02:31:28Z</date>
复制代码
但在此命令下无法得知证书的到期时间,DeveloperCertificates 字段对应的值为Base64加密,无法正常解析出来,一般个人或公司为一年,企业为三年,描述文件都是一年有效期
2、查看证书文件到期时间
命令1:
# 会生成一个temp.plist的临时文件
$ security cms -D -i embedded.mobileprovision > tmp.plist && /usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' tmp.plist | openssl x509 -inform DER -noout -enddate
复制代码
命令2:
# 不会生成temp.plist的临时文件
$ /usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' /dev/stdin <<< $(security cms -D -i embedded.mobileprovision) | openssl x509 -inform DER -noout -enddate
复制代码
命令3:
# 看全部信息,即把上面命令后面的 -enddate 换成 -text
$ /usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' /dev/stdin <<< $(security cms -D -i embedded.mobileprovision) | openssl x509 -inform DER -noout -text
复制代码
其他方案:
- UI工具 - 风车签名管理 - 工具箱 - 查看描述文件;
- QuickLook插件 - ProvisionQL 预览;