Xcode配置

IOS 关于证书的一些Tips

①从钥匙串中不能导出P12证书的解决方法

对于做远程推送的朋友们来说,从申请证书,到配置添加应用配置,会遇到不少坑,我在此过程中也吃过不少亏,现在一一记下,望对读者们有所帮助。

问题:远程推送要配置证书,见下图: 

有两个都是远程推送证书,一个Debug模式下用的,一个是Release模式下用的,该用哪个呢?

为了加少麻烦其实只配置一个发布(production)状态下的就可以了,既可以调试又可以发布。也就是如果你配置个推之类的第三方,需要上传证书的p12,必须配置(production)状态下的。

问题:

远程通知,一般要获取 push Notification service SSL 的p12证书,等你配置好证书,双击安装到钥匙串,不出意外的情况下,你都会碰到如下坑:[个人信息交换(.p12)]证书是不能选的。

这是因为我们添加cer文件的方法不对。

  1. 见下图:一定要在 “登录”,状态下 选“证书”,这两个千万不要选错(见图)。

2. 要直接把证书从桌面上拖进去证书里面去,而不是双击安装,然后,你就可以见到你的p12啦。如果所示,拖住【aps_development.cer】放入到 登陆–>证书中。PS: aps_development.cer是在苹果开发者中心,用开发者账户创建出来了的。


②iOS真机调试 报错 :unable to build chain to self-signed root
Warning: unable to build chain to self-signed root for signer "Apple Development: ******"

/Users/beyond/Library/Developer/Xcode/DerivedData/aa-cazelqekaygxxrbbvortpyudzzau/Build/Products/Debug-iphoneos/aa.app: errSecInternalComponent

Command CodeSign failed with a nonzero exit code

原因分析:关键点在于这一句:unable to build chain to self-signed root

猜测一定和证书有关,而且问题出在这一个root,也就是根证书出问题了

经搜索后发现,苹果开发者有一个根证书:Apple Worldwide Developer Relations Certification Authority

简称是:AppleWWDRCA

根证书要么过期了,要么是放的位置不对,要么是个数不对

正确的开发根证书:应该是在 钥匙串 -> 系统里面

从网上下载 苹果开发者根证书最新版:Apple Worldwide Developer Relations Certificate Authority (Expiring 02/20/2030)

导入到 钥匙串 -> 系统里 (注意:不能放在 登录里)


③iOS开发证书不受信任

今天Xcode打包时报错,查到log发现问题是签名不受信任。感觉很迷惑,开发证书,描述文件做成手顺都没问题呀,为什么不受信任呢?公钥也没有过期,用同事的公钥然后让他给我导出.p12文件安装仍然显示证书不受信任。😭

百度,谷歌都说可能是误删了AppleWWDRCA(Apple Worldwide Developer Relations Certification Authority)证书。赶快去检查了下,我的AppleWWDRCA文件有安装呀,为什么??

尝试了各种重新下载安装后,仍然显示证书不受信任,崩溃了。还是去查官方文档吧。

还真让我找到了解决方法了。

原来这个文件AppleWWDRCA两个版本都要安装呀,我电脑上只有过期时间为2023年2月8号的版本,赶快安装上了2030年过期的版本,再打开钥匙串查看,果然变成绿色的信任,然后重新打包,一路顺畅。舒服😌

再次吐槽,iOS开发的各种证书,密钥太烦了😡