iOS 上传新版本到AppStore时报错ITMS-90034

今天打包新版本上传到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."

iOS 上传新版本到AppStore时报错ITMS-90034

这个错误是由证书错误导致的,解决这个问题可以按以下步骤依次查找

1.检验发布证书是否有效,打开钥匙串,找到发布证书,发布证书名字中有Distribution的文件,如果在下图中红框标识出的地方显示此证书的“签发者无效”

iOS 上传新版本到AppStore时报错ITMS-90034

2.如果发布证书是在本机生成的(生成发布证书时上传的.certSigningRequest文件是在本机生成的),请看步骤4,如果发布证书不是在本机生成的请看步骤3

3.检验私钥安装是否成功,私钥如果安装成功,在钥匙串中查看时,我的证书和密钥中的文件都是可以展开的,两边展开后的文件是对应的,如下图所示

iOS 上传新版本到AppStore时报错ITMS-90034

iOS 上传新版本到AppStore时报错ITMS-90034

没有安装私钥时的效果如下,红框处没有可展开的标识

iOS 上传新版本到AppStore时报错ITMS-90034

此时我们需要从最开始生成发布证书的那台电脑上导出一个后缀为.p12的文件

导出方法如下

在生成发布证书的电脑上找到已经安装好的有对应密钥且有效的发布证书,右键->导出“iPhone Distribution”

iOS 上传新版本到AppStore时报错ITMS-90034

输入名字以便以后区分,选择保存路径

iOS 上传新版本到AppStore时报错ITMS-90034

输入密码保证别人不会盗用

iOS 上传新版本到AppStore时报错ITMS-90034

这样就导出了一个p12文件,拷贝到自己电脑双击安装即可

iOS 上传新版本到AppStore时报错ITMS-90034

当这台电脑安装了p12文件后,其他电脑如果需要使用这个发布证书,也能够使用从这台电脑导出的p12文件(我没测试)

如果到这里,发布证书任然提示“此证书的签发者无效”,请看步骤4

4.检查根证书是否过期

注意:钥匙串会默认将过期的证书隐藏,所以检查时先设置“显示已过期的证书”

iOS 上传新版本到AppStore时报错ITMS-90034

在钥匙串中找到已过期的根证书,并删掉,根证书可能放在好几个地方,所以最好把下图中红框标识的位置的查看到,这个过期的根证书必须删掉,就算你有一个有效的根证书也不行,只要你过期根证书没删干净就会报错

iOS 上传新版本到AppStore时报错ITMS-90034

上一篇:微软发布正式版SQL Server 2016


下一篇:Windows下使用XManager访问Ubuntu 11.04的设置方法