基于embedded.mobileprovision描述文件查看iOS苹果证书到期时间三种方案

在iOS开发中,embedded.mobileprovision描述文件是开发人员非常熟悉的,里面包含了证书信息,如调试设备UDID、Entitlements、AppIDName、DeveloperCertificates等大量关于此安装包和证书的信息,此文件是二进制格式,无法直接打开,只能通过终端命令,例如mac下自动的命令行工具:security来查看信息,笔者这里演示下如何在获取一个IPA安装包或embedded.mobileprovision的情况下得知描述文件或证书的到期时间。

查看embedded.mobileprovision文件信息,首先打开终端Terminal,输入如下命令:

security cms -D -i embedded.mobileprovision

说明:如果是IPA安装包,请先解压获取此描述文件,全部文本结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AppIDName</key>
	<string>XXXXX</string>
	<key>ApplicationIdentifierPrefix</key>
	<array>
	<string>V5L5V5L5NXXXXXXX</string>
	</array>
	<key>CreationDate</key>
	<date>2020-11-26T06:38:02Z</date>
	<key>Platform</key>
	<array>
		<string>iOS</string>
	</array>
	<key>IsXcodeManaged</key>
	<false/>
	<key>DeveloperCertificates</key>
	<array>
		<data>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</data>
	</array>

								
	<key>Entitlements</key>
	<dict>
		<key>beta-reports-active</key>
		<true/>
				
				<key>application-identifier</key>
		<string>V5L5NXXXXXXX.com.XXXXXXX</string>
				
				<key>keychain-access-groups</key>
		<array>
				<string>V5L5NXXXXXXX.*</string>
				<string>com.apple.token</string>
		</array>
				
				<key>get-task-allow</key>
		<false/>
				
				<key>com.apple.developer.team-identifier</key>
		<string>V5L5V5L5NXXXXXXX</string>

	</dict>
	<key>ExpirationDate</key>
	<date>2021-10-26T02:31:28Z</date>
	<key>Name</key>
	<string>XXXXX</string>
	<key>TeamIdentifier</key>
	<array>
		<string>XXXXXXX</string>
	</array>
	<key>TeamName</key>
	<string>XXXXX Busines Co., Ltd.</string>
	<key>TimeToLive</key>
	<integer>333</integer>
	<key>UUID</key>
	<string>a1c12dbb-d919-49c8-9742-cXXXXXXX2ab1</string>
	<key>Version</key>
	<integer>1</integer>
</dict>
</plist>%            

从以上文件就可以得知此描述文件到期时间:2021-10-26T02:31:28Z

<key>ExpirationDate</key>
	<date>2021-10-26T02:31:28Z</date>

但在此命令下无法得知证书的到期时间,DeveloperCertificates 字段对应的值为Base64加密,无法正常解析出来,一般个人或公司为一年,企业为三年,描述文件都是一年有效期。

至此,我们用到如下命令来查看证书到期时间,输入如下命令:

security cms -D -i embedded.mobileprovision > tmp.plist && /usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' tmp.plist | openssl x509 -inform DER -noout -enddate

notAfter=Oct 26 02:31:28 2021 GMT

可见证书文件到期时间为:Oct 26 02:31:28 2021 GMT,与描述文件到期时间一致,说明是个人或公司类型,如果是2023年到期说明是企业类型,同时也生成了一个temp.plist的临时文件,如果不需要此文件,可以执行如下命令:

/usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' /dev/stdin <<< $(security cms -D -i embedded.mobileprovision) | openssl x509 -inform DER -noout -enddate

也能看到同样的到期时间,如果想看全部信息,把后面的-enddate换成-text,可以执行如下命令:

 /usr/libexec/PlistBuddy -c 'Print DeveloperCertificates:0' /dev/stdin <<< $(security cms -D -i embedded.mobileprovision) | openssl x509 -inform DER -noout -text 

在命令行下查看首先要解压IPA包文件,拿到embedded.mobileprovision,然后执行相应的命令来查看,如果不想如此复杂,可以利用UI工具来查看,利用这款mac软件:风车签名管理 - 工具箱 - 查看描述文件,直接拖拽即可快速查看,如下图:

另外,如果想快速预览一个IPA包文件或描述文件,也可以采用mac插件的方式,首先安装QuickLook插件ProvisionQL,地址:https://github.com/ealeksandrov/ProvisionQL,安装方式如下:

Manual

  • download archive with latest version from the Releases page;
  • move ProvisionQL.qlgenerator to ~/Library/QuickLook/(current user) or /Library/QuickLook/(all users);
  • run qlmanage -r to refresh Quick Look plugins list.

之后选中文件右键鼠标(这里如果不起作用,建议重启电脑一次):

即可看到如下文件信息:

至此,如果想查看embedded.mobileprovision文件的相关信息,比如到期时间等,就可以利用以下这三种方案:

1、Terminal命令行工具 - security;

2、UI工具 - 风车签名管理 - 工具箱 - 查看描述文件;

3、QuickLook插件 - ProvisionQL(https://github.com/ealeksandrov/ProvisionQL)预览。

 

 

 

嵌入式移动配置文件embedded mobileprovision)是用于在iOS设备上安装和运行的应用程序的配置文件。移动配置文件包含了应用程序的授权和签名信息,确保应用程序能够在设备上正常运行。这些文件通常由苹果开发者账号生成,以确保开发者以及他们的应用程序符合苹果的要求和政策。 嵌入式移动配置文件包含了以下信息: 1. 应用程序的唯一标识符(Bundle Identifier):每个iOS应用程序都有一个唯一的标识符,用于区分不同的应用程序。 2. 应用程序的权限:配置文件规定了应用程序能够访问的设备功能和数据,例如相机、通讯录、位置信息等。 3. 开发者账号信息:配置文件中包含了开发者的身份验证信息,以确保应用程序是由授权的开发者发布的。 4. 证书签名:配置文件包含了开发者针对应用程序签名的数字证书信息,确保应用程序是来自可信的开发者。 嵌入式移动配置文件可以嵌入到应用程序的ipa文件中,或者使用OTA(Over-The-Air)方式进行安装。通过安装嵌入式移动配置文件,用户可以使用开发者账号签名的应用程序,而无需通过App Store进行下载和安装。 尽管嵌入式移动配置文件对开发者和用户来说非常重要,但需要注意的是,只有来自可信任来源的配置文件才应当被安装。这是为了确保应用程序是由授权的开发者签名,以及避免潜在的安全风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群鸿

感谢认可,多谢打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值