【问题标题】:App Signing Error "The app signature key information is different from that of the app version uploaded earlier. Please upload a valid key file"应用签名错误“应用签名密钥信息与之前上传的应用版本不同,请上传有效的密钥文件”
【发布时间】:2022-07-28 09:32:38
【问题描述】:
尝试在华为应用程序库中上传更新我创建了“应用程序签名”所需的 .zip:
java -jar pepk.jar --keystore jorgesyskeystore.jks --alias
jorgesysioana --output=output.zip
--加密密钥=1234567892224EE22B45D19B23DB91BA9F52DE0A06513E03A5821409B34976FDEED6E0A47DBA48CC249DD93734A6C5D9A0F43461F9E140F278A5D2860846C2CA3B43
--include-cert
创建的 .zip 包含所需的文件 certificate.pem 和 encryptedPrivateKey:
但是现在我收到消息,当我尝试上传 .zip 文件时:
“应用签名密钥信息与之前上传的应用版本不同,请上传有效的密钥文件”
用于签署此版本的 Keystore 与以后的版本相同。
我该如何解决这个问题?
【问题讨论】:
标签:
android
huawei-mobile-services
huawei-developers
android-app-signing
app-signing
【解决方案1】:
应用签名密钥信息与应用不同
之前上传的版本。请上传有效的密钥文件
错误提示非常清楚。即您上传的签名证书的签名与已发布应用的签名不同,请重新检查。
您使用的加密密钥可能是谷歌命令,不是华为提供的。您需要严格遵循华为以下命令:
java -jar pepk.jar --keystore test.jks --alias test --output=output.zip --encryptionkey=034200041E224EE22B45D19B23DB91BA9F52DE0A06513E03A5821409B34976FDEED6E0A47DBA48CC249DD93734A6C5D9A0F43461F9E140F278A5D2860846C2CF5D2C3C02 --include-cert
详情请关注this docs。
【解决方案2】:
除了信息。包含在另一个答案中。您也可以使用 Java keytool 打印公钥并进行比较,看看是否有任何区别。
你可以参考这个帖子:How to print the public key of a certificate using keytool?
或者这可能会有所帮助:http://developer.android.com/reference/android/content/pm/PackageManager.html
首先,解压APK并解压文件/META-INF/ANDROID_.RSA(这个文件也可能是CERT.RSA,但应该只有一个.RSA文件)。
然后发出这个命令:
keytool -printcert -file ANDROID_.RSA 你会得到这样的证书指纹:
MD5: B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DBSHA1: 16:59:E7:E3:0C:AA:7A:0D: F2:0D:05:20:12:A8:85:0B:32:C5:4F:68 签名算法名称:SHA1withRSA 然后再次使用 keytool 打印出签名密钥库的所有别名:
keytool -list -keystore my-signing-key.keystore 你会得到一个别名列表和他们的证书指纹:
android_key,2010 年 1 月 23 日,PrivateKeyEntry,证书指纹 (MD5):B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB 瞧!我们现在可以确定该 apk 已使用此密钥库和别名“android_key”进行签名。