Xamarin.Android如何使用Google App签名重置上传密钥并使用它来签名另一个APK

时间:2018-10-23 21:44:32

标签: xamarin.android keystore android-keystore

以某种方式,我设法为使用Xamarin开发并已发布的Android应用程序保存了错误的密钥库。 当我想使用我认为正确的密钥库将更新上传到Google Play商店时, SHA证书不匹配。

很幸运,我已经注册了Google Play应用签名,因此他们能够为我重置上传密钥。 为了重置上传密钥I:

1。(不知道我是否必须这样做才能生成新的上传密钥)。在Xamarin中为Android项目生成了新的存档和新的密钥库,并将APK导出到了文件夹中。在该文件夹中,我执行以下步骤的命令行:

2。使用命令行生成新的上传密钥: keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

3。将该密钥的证书导出到* .pem文件: keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

4。将* .pem发送给Google Play开发者支持。**

注意:为了能够在Windows 10命令提示符下使用keytool命令,我搜索并打开了环境变量,在用户变量下找到PATH,右键单击并编辑,并添加了keytool.exe的新位置路径位于:C:\ Program Files \ Java \ jre1.8.0_191 \ bin

现在我有了一个* .pem文件和* .jks文件,如何为我的Xamarin Android项目创建一个新的APK文件,该文件将作为更新并在Visual Studio / Xamarin中使用新的上传密钥进行签名?

3 个答案:

答案 0 :(得分:1)

另一种替代方法是:

1)使用命令promt生成新密钥:

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

2)从应用程序签名中,选择导入选项并导入创建的密钥路径。

3)创建构建并提交到Play商店。

答案 1 :(得分:0)

我想出了办法。

将* .pem文件发送给Google Play开发者支持以重置上载密钥后,他们确认该文件已成功重置(通过Google App签名),但要花几天时间才能激活。

激活后,请执行以下步骤:

1。转到Visual Studio并从“构建/存档”中存档Android项目

2。在“存档”菜单选项中,选择最新的存档,然后单击“打开文件夹”。这将打开一个未签名 * .apk文件所在的文件夹。需要手动签名 与上面提到的* .jks密钥库文件(keystore.jks)。

  1. 首先用zip对齐未签名的存档(确保将C:\ Program Files \ Java \ jre1.8.0_191 \ bin添加到用户变量中的PATH中):

    zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

  2. 使用keystore.jks手动签署zipaligned * .apk文件

    apksigner登录--ks keystore.jks --out my-app-release.apk my-app-unsigned-aligned.apk

  3. 签名过程将询问创建keystore.jks / *。pem文件时使用的密码。之后,生成的apk可随时作为应用更新上传到Google Play商店。 Keystore.jks现在是新的上载密钥。

答案 2 :(得分:0)

我会告诉你,丢失了我的上传密钥时发生了什么。

那时我还只是一个初学者,我不知道保留签名密钥是否那么重要。无论如何,我丢了它。

  1. 我通过访问来请求一个新的上传密钥: PlayConsoleSupport

  2. 填写了必填字段。

  3. 已完成 enter image description here

  4. 他们花了一两天的时间来答复完整但令人困惑的说明,因为我是初学者,因此创建另一个上传密钥并向他们发送.PEM文件。

  5. 我照他们在电子邮件中所说的那样做了 创建了另一个密钥库。

  6. 将其保存在C:users / **** / uploadkey.jks中[重要]

  7. 打开cmd并写了我在电子邮件中收到的命令,我不记得了。

  8. 那给了我certificate.pem

  9. 我回复了该电子邮件并随附了证书。pem

  10. 几天后,我收到一封电子邮件,指出我的上传密钥已激活,并且我必须用它签名以后的所有更新。