我已经编写了一个Android应用程序,但是发布过程的最后一步仍然让我望而却步。我假设当我运行gradle bundleRelease时,它将生成我可以上传到Play商店的aab文件。但Play商店表示捆绑商品未签名。但是,构建过程表示正在签名:
> Task :app:preBuild UP-TO-DATE
> Task :app:preReleaseBuild UP-TO-DATE
> Task :app:compileReleaseRenderscript NO-SOURCE
> Task :app:generateReleaseResValues UP-TO-DATE
> Task :app:generateReleaseResources UP-TO-DATE
> Task :app:mergeReleaseResources UP-TO-DATE
> Task :app:checkReleaseManifest UP-TO-DATE
> Task :app:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :app:mainApkListPersistenceRelease UP-TO-DATE
> Task :app:processReleaseManifest UP-TO-DATE
> Task :app:bundleReleaseResources UP-TO-DATE
> Task :app:checkReleaseDuplicateClasses UP-TO-DATE
> Task :app:mergeExtDexRelease UP-TO-DATE
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:generateReleaseBuildConfig UP-TO-DATE
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:generateReleaseSources UP-TO-DATE
> Task :app:javaPreCompileRelease UP-TO-DATE
> Task :app:processReleaseResources UP-TO-DATE
> Task :app:compileReleaseJavaWithJavac UP-TO-DATE
> Task :app:transformClassesWithDexBuilderForRelease UP-TO-DATE
> Task :app:mergeDexRelease UP-TO-DATE
> Task :app:mergeReleaseShaders UP-TO-DATE
> Task :app:compileReleaseShaders UP-TO-DATE
> Task :app:generateReleaseAssets UP-TO-DATE
> Task :app:mergeReleaseAssets UP-TO-DATE
> Task :app:mergeReleaseJniLibFolders UP-TO-DATE
> Task :app:transformNativeLibsWithMergeJniLibsForRelease UP-TO-DATE
> Task :app:processReleaseJavaRes NO-SOURCE
> Task :app:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
> Task :app:buildReleasePreBundle UP-TO-DATE
> Task :app:collectReleaseDependencies UP-TO-DATE
> Task :app:configureReleaseDependencies UP-TO-DATE
> Task :app:packageReleaseBundle UP-TO-DATE
> Task :app:signingConfigWriterRelease UP-TO-DATE
> Task :app:signReleaseBundle
> Task :app:bundleRelease
gradle构建脚本中有一个签名部分:
android {
...
signingConfigs {
release {
storeFile file(...)
storePassword '...'
keyAlias '...'
keyPassword '...'
}
}
如果在运行构建之前删除所有aab文件,则会在
中生成一个app.aab..\app\build\outputs\bundle\release
似乎一切井井有条,但Play商店不接受aab:
The Android App Bundle was not signed.
我如何构建可发布的aab?
答案 0 :(得分:2)
如果任何人仍在寻找解决方案-在发布配置中将debuggable设置为false。您的应用程序构建gradle文件应具有以下内容-
this.players.then(res => console.log(res)).catch(err => console.log(err))
答案 1 :(得分:1)
似乎我在这里How to create a release signed apk file using Gradle?找到了解决方案,显然buildType需要一个 signingConfig 条目。添加该块后,这些块在我的构建文件中的外观如下。
android {
...
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
我期望已经在那里很奇怪吗?由于我既不是IntelliJ也不是Gradle的粉丝,因此我将对整个构建和发布过程的感受归结为对工具链的经验不足。重要的是该应用程序已在Play商店中。
答案 2 :(得分:0)
您可以使用./gradlew :app:bundleRelease
代替
./gradlew bundleRelease
对我有用!
答案 3 :(得分:0)
我遇到了类似的问题,我的风味签名不正确。我在 buildTypes
中指定了签名默认值,然后在 productFlavors
中覆盖。
buildTypes {
stage {
signingConfig ...
}
release {
signingConfig ...
}
}
productFlavors {
myFlavor {
signingConfig ...
}
运行 ./gradlew bundleMyFlavorStage
是从 buildTypes.stage
获取错误的签名配置而不是产品风味覆盖。我的解决方案是从 signingConfig
和 buildTypes.stage
中删除 buildTypes.release
,并将覆盖保留在 productFlavors
中。