我的第一个 Android 应用程序运行良好,直到我尝试对其进行签名
My first Android app was going great until I tried getting it signed
自 12 月以来,我一直在 Android Studio 中使用 Flutter/Dart 进行开发,并希望最终将其开放给其他人进行内部测试。每当我上传我的应用程序时,它都会显示 Android App Bundle 未签名。
我想在构建菜单中应该有一个签署捆绑包的选项,但我没有这样的菜单项。我无法在 Android Studio 中设置签名。
我在该站点上看到其他帮助,建议将 build.gradle 从“signingConfig signingConfigs.debug”更改为“signingConfig signingConfigs.release”。我见过的所有变体都会导致构建错误,即 'release' 是一个未知选项。
希望有人能在 2 分钟内帮我解决我过去 5 个小时一直在做的事情。
我的设置:
Android 大黄蜂工作室 | 2021.1.1 补丁 3
Build #AI-211.7628.21.2111.8309675,建于 2022 年 3 月 16 日
运行时版本:11.0.11+9-b60-7590822 amd64
VM:Oracle Corporation 的 OpenJDK 64 位服务器 VM
Windows 10 10.0
GC:G1年轻代,G1老年代
内存:1280M
核心数:12
注册表:external.system.auto.import.disabled=true
非捆绑插件:Dart (211.7817)、org.jetbrains.kotlin (211-1.6.21-release-334-AS7442.40)、io.flutter (66.0.1)、org.intellij.plugins.markdown (211.7142. 37)
我也被同样的错误困住了至少几个小时,我就是这样解决的。
在终端中键入以下命令以获取 .jks 文件
如果在 Mac/Linux
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
对于windows
keytool -genkey -v -keystore c:\Users\USER_NAME\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
然后你会被要求提供一些细节并输入它们,然后你会得到一个.jks文件,将它复制并粘贴到[project]/android/app/文件夹中以备不时之需。
如果你的代码是 public.
不要忘记在 .gitignore 中添加它
之后创建一个名为 [project]/android/key.properties 的文件,它实际上是对您的密钥的引用,并粘贴到密钥属性下方:
storePassword=<password you used to create .jks file>
keyPassword=<key password you used to create .jks file>
keyAlias=upload
storeFile=../app/upload-keystore.jks
创建key.properties后,需要配置[项目]/android/app/build.gradle个文件:
1.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ?
file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
最后,flutter 清理并使用以下命令重建应用程序包:
flutter build appbundle
恭喜您的应用程序包已签名并准备好在 Play 商店发布。
自 12 月以来,我一直在 Android Studio 中使用 Flutter/Dart 进行开发,并希望最终将其开放给其他人进行内部测试。每当我上传我的应用程序时,它都会显示 Android App Bundle 未签名。
我想在构建菜单中应该有一个签署捆绑包的选项,但我没有这样的菜单项。我无法在 Android Studio 中设置签名。
我在该站点上看到其他帮助,建议将 build.gradle 从“signingConfig signingConfigs.debug”更改为“signingConfig signingConfigs.release”。我见过的所有变体都会导致构建错误,即 'release' 是一个未知选项。
希望有人能在 2 分钟内帮我解决我过去 5 个小时一直在做的事情。
我的设置:
Android 大黄蜂工作室 | 2021.1.1 补丁 3 Build #AI-211.7628.21.2111.8309675,建于 2022 年 3 月 16 日 运行时版本:11.0.11+9-b60-7590822 amd64 VM:Oracle Corporation 的 OpenJDK 64 位服务器 VM Windows 10 10.0 GC:G1年轻代,G1老年代 内存:1280M 核心数:12 注册表:external.system.auto.import.disabled=true 非捆绑插件:Dart (211.7817)、org.jetbrains.kotlin (211-1.6.21-release-334-AS7442.40)、io.flutter (66.0.1)、org.intellij.plugins.markdown (211.7142. 37)
我也被同样的错误困住了至少几个小时,我就是这样解决的。
在终端中键入以下命令以获取 .jks 文件
如果在 Mac/Linux
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
对于windows
keytool -genkey -v -keystore c:\Users\USER_NAME\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
然后你会被要求提供一些细节并输入它们,然后你会得到一个.jks文件,将它复制并粘贴到[project]/android/app/文件夹中以备不时之需。 如果你的代码是 public.
不要忘记在 .gitignore 中添加它之后创建一个名为 [project]/android/key.properties 的文件,它实际上是对您的密钥的引用,并粘贴到密钥属性下方:
storePassword=<password you used to create .jks file>
keyPassword=<key password you used to create .jks file>
keyAlias=upload
storeFile=../app/upload-keystore.jks
创建key.properties后,需要配置[项目]/android/app/build.gradle个文件:
1.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ?
file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
最后,flutter 清理并使用以下命令重建应用程序包:
flutter build appbundle
恭喜您的应用程序包已签名并准备好在 Play 商店发布。