我最近完成了一个应用程序从 Xamarin 到 Flutter 的重写。我只需要在 AppStore 中启动即可。有没有办法将旧签名(Xamarin)用于新版本(flutter)?
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>
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
Flutter 现在签署所有发布版本。 运行 flutter build appbundle
或
flutter build apk