gradlewAssembleRelease,gradlewInstallRelease和gradlew bundleRelease之间有什么区别,何时使用?

时间:2019-07-17 09:21:36

标签: java android react-native kotlin

如果使用哪个应用程序,我什么时候要将一个Android应用程序上载到Playstore?

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

./gradlew assembleRelease
./gradlew installRelease
./gradlew bundleeRelease

我希望做到这一点的最好方法。

1 个答案:

答案 0 :(得分:1)

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

assembleDebug

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

  

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

installDebug

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

  

或者构建APK并立即将其安装在正在运行的仿真器或连接的设备上,而不是调用installDebug

assembleRelease

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

通过命令行签署 apk 所涉及的步骤相当长,并且这取决于项目的设置方式。可以找到签名步骤here

bundleRelease

这会创建一个发行版 aab ,这是Google首选的上载至Play商店的格式。

  

Android应用程序捆绑包包含您所有应用程序的已编译代码和资源,但会延迟APK的生成和对Google Play的签名。与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
            ...
        }
    }
}

您可以阅读有关对应用here进行签名的更多信息

  

现在,当您通过调用Gradle任务来构建应用时,Gradle会为您签名(并运行zipalign)您的应用。

     

此外,因为您已经使用签名密钥配置了发行版本,所以“安装”任务适用于该版本类型。因此,您可以通过installRelease任务在模拟器或设备上构建,对齐,签名和安装发行版APK。

installRelease

您必须已经设置了上面的签名,才能用于发行版本。它与installDebug相同,但是它创建了一个签名的发行版本,并将其安装在已连接的设备上。

用法

  • 我使用assembleRelease来构建要与其他人共享的 apk
  • 我要在连接的设备上测试发行版时使用installRelease
  • 将应用上传到Play商店时,我使用bundleRelease