基于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苹果证书到期时间三种方案相关推荐
- 查看域名https证书到期时间
1.通过域名获取 方法一 echo | openssl s_client -servername 域名 -connect 域名:443 2>/dev/null | openssl x509 -n ...
- 测试版ios15怎么信任软件,苹果ios15信任的描述文件在哪?苹果ios15授权信任怎么设置?...
苹果ios15信任的描述文件在哪?ios15系统发布了,虽说只是一个测试的版本,但是就目前小伙伴们的升级体验来说的话,ios15目前建议还是等一下正式版本,测试版还是与不少bug的,很多朋友不清楚io ...
- 查看IOS-app证书到期时间
参照: iOS企业版证书到期 https://www.jianshu.com/p/44b0dc46ef37 如果不能十分确定每一个打出来的ipa的有效期(过期时间),而又需要关注它具体什么时候需要强制 ...
- 【查看linux中所有用户的三种方式】
查看linux中所有用户的三种方式学习目标: 提示:通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息 用户信息存放位置: 提示:Linux ...
- ios多线程开发的常用三种方式
ios多线程开发的常用三种方式 1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSe ...
- 【Win 10 应用开发】文件读写的三种方案
本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧--事无定法,灵活运用者为上. OK,咱们开始吧 ...
- iOS 组件化的三种方案
组件化 本文主要介绍iOS组件化的三种方案 1.常⽤的三种方案 URL Scheme Target - Action Protocol - Class 匹配 1.1. URL Scheme路由 使 U ...
- 文件夹选择对话框 JS实现的两种方案
文件夹选择对话框 JS实现的两种方案 /** * browseFolder.js * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框 * 以供用户实现对系统文件夹选择 ...
- java证书过期时间_我想用代码方式查看ca证书到期时间,以下是我的代码,可以显示日期,但是和实际的截止日期不一致...
我想用代码方式查看ca证书到期时间,以下是我的代码,可以显示日期,但是和实际的截止日期不一致 希望各位大牛帮忙看一下问题出在哪,多谢啦 import java.io.*; import java.se ...
最新文章
- 如何在树莓派上进行python编程_《树莓派Python编程指南》怎么样_目录_pdf在线阅读 - 课课家教育...
- 一文看懂微服务背后的技术演进与应用实践
- Redis数据结构详解之Set(三)
- 排序算法-04快速排序(Python实现)
- psql切换schema_PostgreSQL教程(二):模式Schema详解
- OpenvSwitch实现kubernetes依赖的底层网络
- timm 视觉库中的 create_model 函数详解
- 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台
- 使用winscp在从linux向windows传输文件
- 【Druid】Druid简介
- centos7开放80端口_Centos7.4系统 httpd模式搭建文件服务器
- iOS-入门HelloWorld
- Android中用URL模拟一个简单的图片加载器
- 如何显示或隐藏Mac电脑右上角的声音图标
- IDEA---Project下看不见项目目录
- oracle10G/oracle11G连接oracle12c,ORA-28040的解决
- 怎样把小米手机便签内容转存到百度网盘中去?
- MacBook Pro 触摸板手势突然失效的解决方案
- 经典题目3-应用的闪退通常是什么原因造成的?如果应用闪退,Android 和 iOS 上是分别怎么抓取日志的?
- 为原型产品推荐的四款设计工具
热门文章
- 4x4按键c语言,52单片机C语言4X4键盘.docx
- 【Quant】BigQuant学习笔记(1) 可视化策略
- 【雷达与对抗】【2018.05】用于调制信号分类的深度神经网络结构
- 观察者模式ApplicationListener异步处理事件
- 数据分析项目-某加油站订单分析(SQL需求篇)
- 证明spring中property name=这个双引号的内容只与setter方法有关,与一个类定义的字段和getter方法无关...
- 浏览器加载解析渲染机制的全面解析
- js实现两张图片来回切换
- 面试官100%会问的软件测试面试题!!(必看)
- Java中特殊字符处理(转义字符)