我有一个用eclipse制作的遗留android项目,最近我更新了该项目以使用android studio。当我尝试提交已签名的apk时,Google Play会说它使用的证书与之前的证书不同。但我确定这是相同的证书。如果我使用eclipse生成一个apk,它可以工作,但在android studio中,即使使用相同的证书,它也不会。
如果我在用eclipse生成的apk中打印证书,我得到:
Owner: CN=Luciano...
Issuer: CN=Luciano...
Serial number: 35623238373966383a31333432326637373064303a2d38303030
Valid from: Thu Dec 08 11:16:08 BRST 2011 until: Tue Dec 09 11:16:08 BRST 2036
Certificate fingerprints:
MD5: 9A:CB:***:AA:88
SHA1: 0D:BA:***:20:9B
SHA256: CA:3F:***:90:58
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
但如果我在用android studio生成的apk中打印证书,我会得到:
Owner: CN=Luciano...
Issuer: CN=Luciano...
Serial number: 35623238373966383a31333432326637373064303a2d38303030
Valid from: Thu Dec 08 11:16:08 BRST 2011 until: Tue Dec 09 11:16:08 BRST 2036
Certificate fingerprints:
MD5: E1:51:***:7A:08
SHA1: 63:F0:***:65:CF
SHA256: 66:57:***:B9:CB
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
证书具有相同的序列号,但指纹不同。
我尝试使用gradle生成一个未签名的apk并手动对其进行签名,但它确实有效。更好的解释,如果我手动签署apk,谷歌播放接受它。这是一个android studio bug吗?
我针对Android Studio版本1.4.1,Build#AI-141.2343393和Android Build Tools 23.0.1进行了测试。
感谢。