背景:

前一阵子,在xcode的证书管理中心,测试了一下新建证书的功能,想看看在apple 开发者账户产生证书的流程,结果由于网络延迟问题,apple开发者账户刷新未看到,连着新建了几个证书,在某次刷新之后发现,早已生成了好几个,我这个强迫症啊,想找办法删掉,最终没找到方法删掉,只有过期的证书才能删除掉, 后来我只能在本地删掉了一些没用证书的;可是最近在打包新版本APP,发现APP原有的自动升级在签名验证的时候报错:

code signature at url xxx did not pass validation:code failed to satisfy specified code requirements

于是查找签名问题,首先要做的就是对比前后两次签名是否一致,在此做一个记录方便后来人,用到的工具是:codesign, 具体命令如下:

举个例子,查看APP签名信息:

>% codesign -d -vv  "/Applications/Xcode.app"                                                                                                                                <develop ✗>
Executable=/Applications/Xcode.app/Contents/MacOS/Xcode
Identifier=com.apple.dt.Xcode
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20200 size=725 flags=0x2000(library-validation) hashes=15+5 location=embedded
Signature size=4698
Authority=Apple Mac OS Application Signing
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Info.plist entries=44
TeamIdentifier=APPLECOMPUTER
Sealed Resources version=2 rules=13 files=466812
Internal requirements count=1 size=224

当然,你想看更详细的签名西溪可以 “-vvvv”, "v"越多越详细,当然也是有限度的,具体参数详解,可以查阅命令: codesign

接下来就是查看 Application 证书信息了, 需要用到参数“ --extract-certificates ”, 如下:

% codesign -d -vvv --extract-certificates "/Applications/Xcode.app"                                                                                                         <develop ✗>
Executable=/Applications/Xcode.app/Contents/MacOS/Xcode
Identifier=com.apple.dt.Xcode
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20200 size=725 flags=0x2000(library-validation) hashes=15+5 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=004dce7c24fd6c4c8a0866ddcb3603027f8a891f
CandidateCDHashFull sha1=004dce7c24fd6c4c8a0866ddcb3603027f8a891f
CandidateCDHash sha256=2db4cab95fc0caba9def3e37e92a81c02d0ffb62
CandidateCDHashFull sha256=2db4cab95fc0caba9def3e37e92a81c02d0ffb626025455155f316ebb34fb71b
Hash choices=sha1,sha256
CMSDigest=04d06f85c09f677e35ccb0633d7ac293e4f6b3846f8231df4e7ad04a87478bf8
CMSDigestType=2
CDHash=2db4cab95fc0caba9def3e37e92a81c02d0ffb62
Signature size=4698
Authority=Apple Mac OS Application Signing
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Info.plist entries=44
TeamIdentifier=APPLECOMPUTER
Sealed Resources version=2 rules=13 files=466812
Internal requirements count=1 size=224

此时,你会发现当前目录下产生了 codesign* 文件,接下来就是查看证书信息了,需要用到常用又冷门命令“almanage”,如下:

% qlmanage -c public.x509-certificate -p codesign*

该命令是Quick Look, 是不是既熟悉又陌生。。。

通过以上命令,可以快速查看APP 所用的签名信息和签名证书信息;

MAC APP 签名证书查看相关推荐

  1. Android App签名(证书)校验过程源码分析

      Android App安装是需要证书支持的,我们在Eclipse或者Android Studio中开发App时,并没有注意关于证书的事,也能正确安装App.这是因为使用了默认的debug证书.在A ...

  2. QT Mac app签名及公证

    这里示范的是Qt程序的部署.签名及公证. 1.首先用macdeployqt xxx.app部署,不要加-dmg参数,如果出现第三方库依赖问题,百度查找解决办法,第三方库编译为静态库能少很多事,依赖的其 ...

  3. https-OPenSSL证书生成及自签名证书

    目录 SSL/TLS 1.搭建OPenssl服务器 1.1.下载 1.2.安装下载好的exe程序 2.服务器端证书-生成key.CSR.CRT 2.1.进入如下目录,执行cmd 2.2.生成一个私钥k ...

  4. Mac 下通过Keytool生成签名证书

    首先安装 jdk开发环境 进入到官网中下载mac版本的jdk安装包 1.首先要知道JDK安装目录 在terminal下输入: /usr/libexec/java_home -V 2.跳转到JDK目录 ...

  5. Qt 在mac上使用证书签名并生成pkg安装包

    @[TOC](Qt 在mac上生成pkg安装包)## 标题 1.使用Qt Creator编译出Release版本 2.将生成的app程序拷贝到新的目录 3.使用macdeployqt添加依赖库 mac ...

  6. 获取 Andriod keystore签名证书文件,用于打包APP应用

    每个安卓APP,都要签名证书才能安装在手机上,测试的应用有测试的签名证书,生产环境有生产环境的签名证书,在开发APP之前,我们首先生成一个用于该APP的签名证书,用于测试调试应用,像微信支付.分享.地 ...

  7. Mac如何创建自签名证书?Mac创建自签名证书图文教程

    Mac上怎么创建自签名证书?您可以使用"钥匙串访问"中的"证书助理"创建自签名证书.自签名证书不提供由证书颁发机构所签名的证书中的各种保证,但如果证书的签名人可 ...

  8. 安卓App生成签名证书,uniapp生成自有证书打包

    uniapp安卓打包生成自有证书,签名.从HBuilderX3.2.0及以上版本开始支持服务器生成证书(推荐这种方法),服务器生成一键操作,比较简单.自己一步一步操作相对还是比较麻烦的. 服务器生成证 ...

  9. [macOS]_[Shell]_[获取App的签名证书有效期]

    场景 在进行 macOS开发时, 一般都需要对 app 进行签名,而我们发布产品后,测试如何查看app是否已经签名,证书是否正确,证书的有效期到哪天?我们右键app的Get Info并没有签名和证书信 ...

  10. 不要签名证书将网页打包封装成苹果APP,无需苹果企业签名,IPA证书签名,ios签名证书,免越狱安装...

    不用签名证书将网页封装成苹果APP,无需苹果企业证书 签名,IPA证书签名,ios证书签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的 ...

最新文章

  1. Oracle包和包体以及与非包体定义函数、过程的区别
  2. 自定义应用Crash时系统显示的对话框
  3. 3月份最热门 JS开源项目排行
  4. 错误率_研究发现,商业语音识别系统存在高错误率
  5. 解决ubuntu和windows之间无法复制粘贴问题
  6. VC里的project panel窗口如何实现(转载)
  7. iBATIS使用$和#的一些理解
  8. Mac 配置maven的环境变量
  9. 关于虚拟机virtualbox使用无线卡上网的设置
  10. zbbz加载成功用不了_cad加载应用程序不能加载
  11. word中 插入公式及交叉引用
  12. 栀子花怎么养 栀子花的养殖方法和注意事项
  13. Js中${}字符串拼接
  14. iceoryx(冰羚)-IPC中间件交叉编译
  15. 一些常用的ubuntu软件安装方式
  16. 18.链表插入——尾插法
  17. win ce车载系统刷机包_Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载
  18. 计算机英语的作文,计算机英语作文
  19. 同济大学计算机教研网,同济大学计算机科学与技术工程系简介
  20. 巴菲特再捐36亿美元,还说:赚钱的脑袋很重要

热门文章

  1. 基于单片机的室内安全环境监测系统的设计
  2. Java中的关键字有哪些?
  3. php 精准定位到街道,ip地址查询精确到街道_ip查询详细地址带地图
  4. Anylogic中队列属性设置
  5. android华为状态栏字体颜色,Flutter修改状态栏颜色以及字体颜色
  6. VM 14 CentOS 7.0虚拟机上网设置方法
  7. 爬取qq音乐,js加密sign值无效,包含思路,遇到的各种问题要点
  8. asp人脸识别,asp刷脸识别接口代码,微信公众号人脸识别代码
  9. 人脸识别示例代码解析(二)——人脸识别解析
  10. 网易mumu模拟器老版本下载地址/历史版本/完整包