kotlin gradlewAssembleRelease、gradlewInstallRelease和gradlew bundleRelease之间有什么区别以及何时使用哪一个?

2cmtqfgy  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(167)

当我想将Android应用程序上传到Play商店时,我应该使用哪一个?
以上我都试过了,但我还是搞不清哪一种最有效?

./gradlew assembleRelease
./gradlew installRelease
./gradlew bundleRelease

我期待着最好的方法来做到这一点。

bmvo0sr5

bmvo0sr51#

您要寻找的大多数答案都可以在here中找到

第一个月

这将使用调试变体为您的项目构建一个 apk
这将在project_name/module_name/build/outputs/apk/中创建一个名为module_name-debug.apk的APK。该文件已使用调试密钥签名并与zipalign对齐,因此您可以立即将其安装在设备上。

installDebug(第一个字母)

这将使用调试变体为您的项目构建一个 apk,然后将其安装在连接的设备上
或者,要构建APK并立即将其安装到正在运行的模拟器或连接的设备上,请调用installDebug

assembleRelease的名称

这将创建一个 apk 版本的应用。然后您需要使用命令行或通过在build.gradle中设置签名细节(见下文)对其进行签名,然后您可以使用adb将其安装到您的设备上。
通过命令行对 apk 进行签名所涉及的步骤相当长,这取决于您的项目是如何设置的。

bundleRelease的名称

这将创建一个版本 aab,这是Google上传到Play商店的首选格式。
Android应用捆绑包包含您的应用的所有编译代码和资源,但会将APK生成和签名延迟到Google Play。与APK不同,您无法将应用捆绑包直接部署到设备。因此,如果您希望快速测试APK或与他人共享APK,则应构建APK。

签署您的apk/aab

您可以配置app/build.gradle,以便在构建完成后进行签名。
在您的app/build.gradle

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            // You need to specify either an absolute path or include the
            // keystore file in the same directory as the build.gradle file.
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

您可以在此处阅读有关应用程序签名的更多信息
现在,当您通过调用Gradle任务构建应用时,Gradle会为您签署应用(并运行zipalign)。
此外,由于您已经使用签名密钥配置了发布版本,因此“install”任务可用于该版本类型。因此,您可以使用installRelease任务在模拟器或设备上构建、对齐、签名和安装发布APK。

注意事项

最好不要在app/build.gradle中存储您的签名数据。下面的answer说明了如何存储签名数据。

installRelease中的一个

您必须设置上面的签名,才能在发布版本中使用。它与installDebug相同,但它创建了一个签名的发布变体,并将其安装在连接的设备上。

用法

  • 我使用assembleRelease构建了一个 apk,我想与其他人分享。
  • 当我想在连接的设备上测试发布版本时,我使用installRelease
  • 当我上传我的应用程序到Play商店时,我使用bundleRelease

相关问题