iOS 开发证书及代码签名相关记录

iOS开发会遇到以下三种形式的证书:

  • cer - 文件是二进制格式,只保存证书,不保存私钥。
  • p12 - 二进制格式,同时包含证书和私钥,一般有密码保护。
  • pem - 一般是文本格式,可保存证书,可保存私钥。

打开钥匙串访问的工具 - 我的证书,左侧带个小三角形△的,就是你持有对应私钥的证书,点开△可以显示它的私钥,如下图:
在这里插入图片描述
如果要导出证书,一定要展开证书那一条显示出私钥并将两行都选中,导出的证书格式是p12。
证书包含了公钥和许多其他的附加信息,这些附加信息都是被某个认证机构(Certificate Authority 简称 CA)进行签名认证过的,认证这个证书中的信息是准确无误的。iOS开发的认证机构就是苹果的认证部门 Apple Worldwide Developer Relations CA。
命令行工具 security 能快速罗列出你系统中能对代码进行签名的证书(即你拥有私钥的证书)。

$ security find-identity -v -p codesigning 

运行结果如下图所示:
在这里插入图片描述
有了拥有公钥的证书还有私钥,我们就可以对组成应用的二进制文件进行签名,签名过程可以用命令行工具 codesign 完成。
一般我们都使用 Xcode 的 Product - Archive 或者 xcodebuildxcodebuildxcrun 是 Xcode 为开发者提供的一套构建打包的命令,但 Xcode 9 之后,xrun 工具被移除了)对应用进行打包,打包的过程就包含了代码签名,但我们还是可以了解下 codesign 的一些命令。
用证书*’'iPhone Developer: YUNJIA XIE (4RS79RN824)* 对应用 MyApp.iap 设置签名:

$ codesign -s 'iPhone Developer: YUNJIA XIE (4RS79RN824)' MyApp.iap

查看签名信息:

$ codesign -vv -d MyApp.iap

运行结果如下图所示:
在这里插入图片描述
重签名的时候,这个工具就非常有用了,在设置签名的参数 -s 前面加上参数 -fcodesign 会用你选择的证书对应用文件进行重签名,这种操作常见于内测平台,使用企业证书进行重签名,可使得非测试设备都能安装上该安装包。运行结果如下图所示:
在这里插入图片描述
验证签名是否完好,可用如下命令:

$ echo 'lol' >> MyApp.iap // 破坏签名
$ codesign --verify MyApp.iap // 校验签名

运行结果如下图所示:
在这里插入图片描述
更多关于代码签名的内容,可参考 ObjC 这篇文章 代码签名探析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值