将密钥库从 Xamarin 导入 Android Studio



我在Visual studio上使用Xamarin平台创建了一个Android项目,并将其上传到应用商店。但是现在由于某些原因,我必须切换到同一应用程序的Android Studio,我已经在Xamarin上拥有密钥库。 如何在我的安卓项目中导入密钥库。

Windows

对于调试版本

找到用于对应用进行签名的 Xamarin debug.keystore 文件。默认情况下,可以在以下位置找到用于对 Xamarin.Android 应用程序的调试版本进行签名的密钥库:

C:\Users\USERNAME\AppData\Local\Xamarin\Mono for Android\debug.keystore

有关密钥库的信息是通过从 JDK 运行 keytool.exe 命令来获取的。此工具通常位于以下位置:

C:\Program Files (x86(\Java\jdkVERSION\bin\keytool.exe

将包含 keytool.exe 的目录添加到 PATH 环境变量中。使用以下命令打开命令提示符并运行 keytool.exe:

keytool.exe -list -v -keystore "%LocalAppData%XamarinMono for Androiddebug.keystore" -alias androiddebugkey -storepass android -keypass android

运行时,keytool.exe 应输出以下文本。MD5: 和 SHA1: 标签标识各自的签名:

Alias name: androiddebugkey
Creation date: Aug 19, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 53f3b126
Valid from: Tue Aug 19 13:18:46 PDT 2014 until: Sun Nov 15 12:18:46 PST 2043
Certificate fingerprints:
MD5:  27:78:7C:31:64:C2:79:C6:ED:E5:80:51:33:9C:03:57
SHA1: 00:E5:8B:DA:29:49:9D:FC:1D:DA:E7:EE:EE:1A:8A:C7:85:E7:31:23
SHA256: 21:0D:73:90:1D:D6:3D:AB:4C:80:4E:C4:A9:CB:97:FF:34:DD:B4:42:FC:
08:13:E0:49:51:65:A6:7C:7C:90:45
Signature algorithm name: SHA1withRSA
Version: 3

对于发布/自定义签名版本

使用自定义 .keystore 文件签名的发布版本的过程与上述相同,发布 .keystore 文件将替换 Xamarin.Android 使用的 debug.keystore 文件。替换您自己的密钥库密码值,以及创建发行版密钥库文件时的别名。

当 Visual Studio Distributed 向导用于对 Xamarin.Android 应用进行签名时,生成的密钥库驻留在以下位置:

C:\Users\USERNAME\AppData\Local\Xamarin\Mono for Android\alias\alias.keystore

例如,如果您按照创建新证书中的步骤创建新的签名密钥,则生成的示例密钥库将驻留在以下位置:

C:\Users\USERNAME\AppData\Local\Xamarin\Mono for Android\chimp\chimp.keystore

有关对 Xamarin.Android 应用进行签名的详细信息,请参阅对 Android 应用程序包进行签名。

点击这里查看完整参考

从 Xamarin 获取密钥库后,只需按照这些说明导入它即可。

这是在您的 Gradle 构建文件中指定的,请复制密钥库文件 进入你的安卓工作室项目结构,我选择创建一个新的 名为密钥库的应用程序下的目录:/app/keystores/release.keystore

signingConfigs {
debug {
storeFile file('keystores/debug.keystore')
}
release {
storeFile file('keystores/release.keystore')
keyAlias ...
storePassword ...
keyPassword ...
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
debuggable true
}
release {
signingConfig signingConfigs.release
debuggable false
}
}

在此处查看有关如何导入密钥库的其他答案

最新更新