在创建签名的apk文件之前,我们将版本从1.00提升到了1.7.8。
flutter build apk --flavor production
它将自动生成签名的apk文件。
但是在将其升级到1.7.8之后 我尝试过
flutter build appbundle --flavor production
当我将其上传到Google Play商店时, 它说我的应用程序未签名。
当我尝试生成aab文件而不是apk文件时,我还有什么要做的事情吗?
我像以前一样保持设置
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
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.release
}
}
我有一个名为key.properties的文件,用于存储signingConfig的值
答案 0 :(得分:1)
要将aab
上传到Google Play,您必须先注册Google Play进行的应用签名。
在此处检查详细信息: https://support.google.com/googleplay/android-developer/answer/7384423
参考: https://developer.android.com/guide/app-bundle/
- 通过Google Play注册应用签名。否则,您将无法将应用程序捆绑包上传到Play控制台。
答案 1 :(得分:1)
如果有人想制作唱歌apk或应用程序包。所以下面的步骤应该是方式。
01=> 签署应用
要在 Play 商店上发布,您需要为您的应用提供数字签名。使用以下说明为您的应用程序签名。 01.1) 创建密钥库 如果您有现有的密钥库,请跳到下一步。如果没有,请通过在命令行运行以下命令来创建一个: 在 Mac/Linux 上,使用以下命令:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize
2048 -validity 10000 -alias key`
在 Windows 上,使用以下命令:
keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype
JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
此命令将 key.jks 文件存储在您的主目录中。如果要将其存储在其他地方,请更改传递给 -keystore 参数的参数。但是,请将密钥库文件保密;不要将其签入公共源代码管理!
注意: • keytool 命令可能不在您的路径中——它是 Java 的一部分,作为 Android Studio 的一部分安装。对于具体路径,运行 flutter doctor -v 并找到打印在“Java binary at:”之后的路径。然后使用完全限定的路径用 keytool 替换 java(最后)。如果您的路径包含空格分隔的名称,例如 Program Files,请使用适合平台的名称表示法。例如,在 Mac/Linux 上使用 Program\ Files,在 Windows 上使用“Program Files”。
• 只有Java 9 或更新版本才需要-storetype JKS 标记。从 Java 9 版本开始,密钥库类型默认为 PKS12。
01.2) 从应用程序引用密钥库 创建一个名为 /android/key.properties 的文件,其中包含对您的密钥库的引用:
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, such as /Users/<user name>/key.jks>
警告:将 key.properties 文件保密;不要将其签入公共源代码管理。
01.3) 在 gradle 中配置签名 通过编辑 /android/app/build.gradle 文件为您的应用配置签名。
在android块前添加代码:
安卓{ ... }
使用属性文件中的密钥库信息:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
将 key.properties 文件加载到 keystoreProperties 对象中。
在 buildTypes 块之前添加代码:
构建类型{
发布 {
// TODO:为发布版本添加您自己的签名配置。
// 现在使用调试密钥签名,
// 所以 flutter run --release
有效。
签名配置signingConfigs.debug
}
}
使用签名配置信息:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
在模块的 build.gradle 文件中配置 signingConfigs 块。 现在将自动对您应用的发布版本进行签名。
注意:您可能需要在更改 gradle 文件后运行 flutter clean。这可以防止缓存构建影响签名过程。 有关为您的应用签名的更多信息,请参阅 developer.android.com 上的 Sign your app。
如果你想制作唱歌APK,那么在项目终端运行
flutter build apk
如果你想制作 App Bundle 则在项目终端运行
flutter build appbundle
注意:混淆和缩小会显着延长 Android 应用程序的编译时间。
警告:最近,Flutter 团队收到了几份来自开发者的报告,表明他们在 Android 6.0 上的某些设备上遇到了应用程序崩溃的问题。如果您的目标是 Android 6.0,请使用以下步骤:
• 如果您构建 App Bundle 编辑 android/gradle.properties 并添加标志:
android.bundle.enableUncompressedNativeLibs=false.
• 如果您构建 APK 确保未设置 android/app/src/AndroidManifest.xml
android:extractNativeLibs=false
在标签中。