如何将 visual studio 2019 中的 jks 文件导入为现有密钥库
how to import jks file in visual studio 2019 as existing keystore
我想在 Google Play 上更新应用程序。我丢失了 Keystore 密码,在联系 google 支持人员后,我按照下面给出的命令进行操作,他们为我重置了上传密钥。
1. keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
2. keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
现在我有了 keystore.jks
文件。现在问题来了。
我将在 Visual Studio 2019 年执行这些步骤。
右键单击 Myproject.Android > Archive
然后获取 apk 文件 Bundle Format: apk
点击Distribute > Google Play > Import
然后 Import an Existing Keystore dialog box 它期望导入扩展名为 .keystore
的文件,但我 .jks
也尝试将其转换为 .keystore
但没有成功。
这是我遇到的错误
at Xamarin.AndroidTools.PublicationUtilities.KeyManagement.<>c__DisplayClass13_0.<ImportKeyAsync>b__0(Task`1 t) in C:\A\s\External\androidtools\Xamarin.AndroidTools\PublicationUtilities\KeyManagement.cs:line 313
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Xamarin.VisualStudio.Publishing.Presentation.ViewModels.AndroidImportKeyViewModel.<Import>d__48.MoveNext() in C:\A\s\src\Core\VisualStudio.Publishing\Presentation\ViewModels\AndroidImportKeyViewModel.cs:line 133
有什么我遗漏的吗?
如何使用 keystore.jks
更新我的应用程序?
我想我应该 post 我是如何解决这个问题的,如果其他人会遇到这个问题,他可能会按照这些步骤解决它。
获得 keystore.jks
文件后,将 project.Android.apk
和 keystore.jks
文件复制到 C:\Program Files (x86)\Android\android-sdk\build-tools.0.2
位置。
运行 在给定位置以管理员身份命令提示符 C:\Program Files (x86)\Android\android-sdk\build-tools.0.2
现在你需要zipalign
手动apk文件,运行以下命令。
run zipalign -v -p 4 com.project.Android.apk com.projectAligned.Android.apk
那么你必须签署apk。
apksigner sign --ks keystore.jks --out com.projectRelease.Android.apk com.projectAligned.Android.apk
我 运行 遇到了与 Visual Studio 密钥库导入工具相同的问题,事实证明导入工具需要别名和密钥库的 non-empty 密码。以下是使用导入工具所需的别名密码将 keystore.jks 文件复制到新的 upload.keystore 文件的方法:
keytool -importkeystore -srckeystore keystore.jks -srcalias upload -destkeystore upload.keystore -deststoretype pkcs12 -destalias upload -destkeypass password
现在您可以使用 Visual Studio 使用您在上面为 -destkeypass
指定的别名密码导入新创建的 upload.keystore
并像往常一样使用 Visual Studio 签名而不是从命令行签名。
我想在 Google Play 上更新应用程序。我丢失了 Keystore 密码,在联系 google 支持人员后,我按照下面给出的命令进行操作,他们为我重置了上传密钥。
1. keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
2. keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
现在我有了 keystore.jks
文件。现在问题来了。
我将在 Visual Studio 2019 年执行这些步骤。
右键单击 Myproject.Android > Archive
然后获取 apk 文件 Bundle Format: apk
点击Distribute > Google Play > Import
然后 Import an Existing Keystore dialog box 它期望导入扩展名为 .keystore
的文件,但我 .jks
也尝试将其转换为 .keystore
但没有成功。
这是我遇到的错误
at Xamarin.AndroidTools.PublicationUtilities.KeyManagement.<>c__DisplayClass13_0.<ImportKeyAsync>b__0(Task`1 t) in C:\A\s\External\androidtools\Xamarin.AndroidTools\PublicationUtilities\KeyManagement.cs:line 313
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Xamarin.VisualStudio.Publishing.Presentation.ViewModels.AndroidImportKeyViewModel.<Import>d__48.MoveNext() in C:\A\s\src\Core\VisualStudio.Publishing\Presentation\ViewModels\AndroidImportKeyViewModel.cs:line 133
有什么我遗漏的吗?
如何使用 keystore.jks
更新我的应用程序?
我想我应该 post 我是如何解决这个问题的,如果其他人会遇到这个问题,他可能会按照这些步骤解决它。
获得 keystore.jks
文件后,将 project.Android.apk
和 keystore.jks
文件复制到 C:\Program Files (x86)\Android\android-sdk\build-tools.0.2
位置。
运行 在给定位置以管理员身份命令提示符 C:\Program Files (x86)\Android\android-sdk\build-tools.0.2
现在你需要zipalign
手动apk文件,运行以下命令。
run zipalign -v -p 4 com.project.Android.apk com.projectAligned.Android.apk
那么你必须签署apk。
apksigner sign --ks keystore.jks --out com.projectRelease.Android.apk com.projectAligned.Android.apk
我 运行 遇到了与 Visual Studio 密钥库导入工具相同的问题,事实证明导入工具需要别名和密钥库的 non-empty 密码。以下是使用导入工具所需的别名密码将 keystore.jks 文件复制到新的 upload.keystore 文件的方法:
keytool -importkeystore -srckeystore keystore.jks -srcalias upload -destkeystore upload.keystore -deststoretype pkcs12 -destalias upload -destkeypass password
现在您可以使用 Visual Studio 使用您在上面为 -destkeypass
指定的别名密码导入新创建的 upload.keystore
并像往常一样使用 Visual Studio 签名而不是从命令行签名。