gradlewAssembleRelease,gradlewInstallRelease和gradlew bundleRelease之间有什么区别,何时使用哪个?assembleDebuginstallDebugassembleReleasebundleRelease签署您的apk / aabinstallRelease用法

2022-09-01 03:31:34

当我想将 Android 应用程序上传到 Play 商店时,我应该使用哪一个?

我已经尝试了上述方法,但我仍然对哪一个最有效感到困惑?

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

我希望这是完成上述工作的最佳方法。


答案 1

您正在寻找的大多数答案都可以在这里找到

assembleDebug

这将使用调试变体为您的项目构建一个apk

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

installDebug

这将使用调试变体为您的项目构建一个apk,然后将其安装在连接的设备上

或者,要构建 APK 并立即将其安装在正在运行的模拟器或连接的设备上,请改为调用installDebug

assembleRelease

这将创建您的应用程序的发布apk。然后,您需要使用命令行或通过在(见下文)中设置签名详细信息对其进行签名,然后可以使用 将其安装在设备上。build.gradleadb

通过命令行对apk进行签名所涉及的步骤相当长,这可能取决于您的项目设置方式。可在此处找到签名步骤

bundleRelease

这将创建一个发布aab,这是Google上传到Play商店的首选格式。

Android App Bundle 包含您应用的所有已编译代码和资源,但会推迟 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)。

此外,由于你已使用签名密钥配置了发布版本,因此“安装”任务可用于该生成类型。因此,您可以使用 installRelease 任务在模拟器或设备上构建、对齐、签名和安装版本 APK。

installRelease

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

用法

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

答案 2

推荐