046*:证书过期怎么办?
一、开发和发布证书作用
1、类似上边证书样式的就是Certificates(证书,包括开发、发布证书),作用 : 这.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限。
2、类似上边证书样式的就是Provisioning Profiles(描述文件,简称PP),这.mobileprovision文件格式的配置文件是让开发者的项目(APP)能有真机调试,发布的权限。
二、各种证书的有效期
企业帐号发布证书有效期是3年,而开发证书有效期为1年,而描述文件开发发布都是只有1年有效期。
个人帐号开发证书发布证书有效期都是1年,描述文件也全是1年有效期。
三、各种证书过期后的后果
1、开发证书和发布证书:
1)企业账号以及打包上传到fir和蒲公英的ipa
名下所有app都无法打开,打开及闪退,受此影响,推送证书及描述文件均失效
2)公司/个人账号:
在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效
2、描述文件
1)企业账号以及打包上传到fir和蒲公英的ipa
如果是过期,名下所有app都无法打开,打开及闪退,有时不会立刻就反应过来,因为苹果有缓存,可以看上面的证书介绍
2)公司/个人账号:
在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效
3、推送证书
推送证书过期:
由于证书过期之后,私钥签名之后,苹果解密之后,发现证书过期无效,证书无法与苹果服务器通信,因此推送证书过期之后,无法使用此证书再次发生推送
推送证书被Revoke:
虽然证书被Revoke,推送功能将无法使用,无法连接苹果服务器(因为生成推送证书的时候,需要生成CSR,里面包含公私钥,我们如果立刻revoke,然后立刻去试的话 是生效的,可能需要苹果同步,第二天将无法使用,提示证书错误,)由此影响的关联的描述文件,如果之前下载的,那么是有效的,如果是在revoke之后下载,将是无效的
四、各种证书失效后的解决办法
1、开发或者发布证书
1.1:如果你的开发者账号是company(公司)类型或个人类型的,只要你的每年99$的开发者membership没有过期,就不会对已上架的app产生影响,只是你下次发布或者更新app就要重新生成一个distribution证书了。
1.2:如果你的开发者账号是enterprise类型(企业级)的,证书过期或被revoke了之后,那么安装过该证书打包的app的用户将无法打开该app了,开发或者发布证书过期后,他相关的描述文件也会失效,解决办法如下:
这个时候你需要到开发者中心---Certificates 目录下把过期的开发或者发布证书Revoke掉,然后生成新的开发或者发布证书,之后还需要更新描述文件,点击过期的描述文件展开详情界面----点击Edit按钮---- 选择对应的开发或者发布证书---点击Generate按钮
为了避免失效后,通过fir打包上传或企业级的APP不能用,一定要在失效之前,生成一个新的发布证书,生成对应的描述文件 ,安装到钥匙串中,在失效之前强制更新一次APP
切记不要随便revoked调你的发布证书,如果你通过fir打包上传或者企业级APP,就会闪退不能用
2、开发或者发布描述文件
一般描述文件过期的原因是 :他相关的开发或者发布证书过期,这个时候你需要到开发者中心---Certificates 目录下把过期的开发或者发布证书Revoke掉,然后生成新的开发或者发布证书,之后别慌, 只需要几步就更新描述文件,点击过期的描述文件展开详情界面----点击Edit按钮---- 选择对应的开发或者发布证书---点击Generate按钮
为了避免失效后,通过fir打包上传或企业级的APP不能用,一定要在失效之前,,生成一个新的描述文件 ,安装,在失效之前强制更新一次APP
3、推送证书过期
推送证书(生产Apple Push Services和开发APNs Development iOS)的有效期都是一年,将要过期的时候,苹果官方会发邮件提醒
过期的体现:
1、我的证书可以看到各个App的推送证书,如果过期了,显示红色X
2、极光提示
3、AppStore 信息显示
解决办法:
1.官网信息点击编辑进入编辑
2:重新创建生产和开发证书
3:进入Create a CSR file 页面,直接Continue:
4:选择CSR File,这个时候还没有创建CSR File,我们需要创建之后才能提交
5:打开钥匙串,首先在我的证书中,将已过期的两个证书删除
6:创建新的CSR文件。点击菜单中钥匙串访问—>证书助理—>从证书颁发机构请求证书...
7:进入证书助理,填写信息(用户名称和邮箱随便写),请求是 选择 存储到磁盘
8:创建好CSR文件,回到步骤4选择新创建的文件提交。点击Continue
9:将生成的证书下载下来,第一个证书完成。
10.回到步骤2的界面,可以看到开发证书已经存在了,重复3-9的步骤(使用同一个CSR文件即可)创建另一个生产证书
完成之后,在过期表现中的表现已改变
11:双击下载的两个证书,把证书添加到钥匙串中
12:为了正常使用极光SDK,去极光官网重新配置两个证书。需要提供p12后缀的文件。
13:p12后缀文件由钥匙串中的证书导出所得
14:这里写的密码即为极光证书密码。提交两个p12后缀文件和填写证书密码,至此过期表现中的表现2已改变
完结:同时,App上推送模块就可以正常使用
为了避免推送失效,最好的解决办法,就是失效之前生成一个新的推送证书,然后把p12 文件传到极光推送上,之后再revoked掉旧的。