Xamarin 在 Flutter 项目中使用 KEYSTORE

问题描述 投票:0回答:1

我最近完成了一个应用程序从 Xamarin 到 Flutter 的重写。我只需要在 AppStore 中启动即可。有没有办法将旧签名(Xamarin)用于新版本(flutter)?

flutter xamarin
1个回答
0
投票

1 - 找到您的 xxxxxx.keystore 文件。通常在这条路径:

X:\Users\username\AppData\Local\Xamarin\Mono for Android\Keystore\AppName

注意

keytools
是一个java工具,通常存储在
C:\Program Files\Java\jdkX.Y.Z\bin\

2 - xxxxx.keystore 文件包含一个或多个别名,要读取 .keystore 文件,您需要使用以下命令

keytool -list -rfc -keystore <KEYSTORE_FILE>

注意:如果您不记得密码(密钥库有一个密码,其中每个别名都有一个密码),您可以使用密码恢复工具(也描述于此处

3 - 将 .keystore 转换为 .jks

keytool -importkeystore -srckeystore <KEYSTORE_FILE> -destkeystore <JKS_FILE> -deststoretype jks

仅导出您需要的别名

keytool -importkeystore -deststoretype jks -srckeystore <KEYSTORE_FILE> -alias <ALIAS> -destkeystore <JKS_FILE> -destalias <ALIAS>
  1. 遵循说明:

4a。从应用程序引用密钥库

创建一个名为

[project]/android/key.properties
的文件,其中包含对您的密钥库的引用。请勿包含尖括号 (< >)。它们表明文本充当您的价值观的占位符。

/* [project]/android/key.properties */
storePassword=<password-from-previous-step>
keyPassword=<password-from-previous-step>
keyAlias=upload
storeFile=<keystore-file-location>

注意:

<keystore-file-location>
是相对于路径
[project]/android/app/

4b.在 gradle 中配置登录

在发布模式下构建应用程序时,将 gradle 配置为使用您的上传密钥。要配置 gradle,请编辑

<project>/android/app/build.gradle
文件。

在 android 属性块之前定义并加载密钥库属性文件。

/* [project]/android/app/build.gradle */ + def keystoreProperties = new Properties() + def keystorePropertiesFile = rootProject.file('key.properties') + if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + } + android { ... }

buildTypes 属性块内部

 android 属性块
之前添加签名配置。

/* [project]/android/app/build.gradle */ android { // ... + signingConfigs { + release { + keyAlias = keystoreProperties['keyAlias'] + keyPassword = keystoreProperties['keyPassword'] + storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword = keystoreProperties['storePassword'] + } + } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, // so `flutter run --release` works. - signingConfig = signingConfigs.debug + signingConfig = signingConfigs.release } } ... }
更改 gradle 文件后,您可能需要运行 

flutter clean


4c。

Flutter 现在签署所有发布版本。 运行 flutter build appbundle

flutter build apk

    

© www.soinside.com 2019 - 2024. All rights reserved.