今天打包新版本上传到AppStore时报错 ERROR ITMS-90034:"Missing or invalid signature.The bundle'com.xxx.xxx' at bundle path 'Payload/xxx' is not signed using an Apple submission certificate."
这个错误是由证书错误导致的,解决这个问题可以按以下步骤依次查找
1.检验发布证书是否有效,打开钥匙串,找到发布证书,发布证书名字中有Distribution的文件,如果在下图中红框标识出的地方显示此证书的“签发者无效”
2.如果发布证书是在本机生成的(生成发布证书时上传的.certSigningRequest文件是在本机生成的),请看步骤4,如果发布证书不是在本机生成的请看步骤3
3.检验私钥安装是否成功,私钥如果安装成功,在钥匙串中查看时,我的证书和密钥中的文件都是可以展开的,两边展开后的文件是对应的,如下图所示
没有安装私钥时的效果如下,红框处没有可展开的标识
此时我们需要从最开始生成发布证书的那台电脑上导出一个后缀为.p12的文件
导出方法如下
在生成发布证书的电脑上找到已经安装好的有对应密钥且有效的发布证书,右键->导出“iPhone Distribution”
输入名字以便以后区分,选择保存路径
输入密码保证别人不会盗用
这样就导出了一个p12文件,拷贝到自己电脑双击安装即可
当这台电脑安装了p12文件后,其他电脑如果需要使用这个发布证书,也能够使用从这台电脑导出的p12文件(我没测试)
如果到这里,发布证书任然提示“此证书的签发者无效”,请看步骤4
4.检查根证书是否过期
注意:钥匙串会默认将过期的证书隐藏,所以检查时先设置“显示已过期的证书”
在钥匙串中找到已过期的根证书,并删掉,根证书可能放在好几个地方,所以最好把下图中红框标识的位置的查看到,这个过期的根证书必须删掉,就算你有一个有效的根证书也不行,只要你过期根证书没删干净就会报错