如何使用Gradle创建一个有发布签名的apk文件?

522 阅读2分钟

一旦你的安卓应用准备好了,你需要生成带有签名的apk。

在本教程中谈到了如何使用gradle文件生成一个发布的apk文件。

如何使用gradle生成无签名的apk文件?

在开发过程中,你需要在真实设备中测试你的应用程序,你需要生成无符号的apk文件。

以下是生成无签名apk release的一系列步骤 在build.gradle文件中,你可以用以下值添加signingConfigs属性。

signingConfigs{
    unsigned{
        storePassword = ""
        keyAlias = ""
        keyPassword = ""
    }
}

接下来添加带有发布信息的buildTypes

buildTypes{
    release{
        signingConfig signingConfigs.unsigned
    }
}

接下来运行以下命令

gradle build
gradle assemble

它会在`appmodule/build/outputs/apk/下生成apk名称project-release-unsigned.apk 文件。

如何使用gradle创建安卓应用签名的apk发布

为了签署和发布一个apk文件,我们需要以下东西

  • keyAlias : 别名密钥
  • keyPassword : 签署密码的钥匙
  • storePassword : 实际密码
  • storeFile : 密钥库文件
  • v1SigningEnabled : jar文件的签署
  • v2SigningEnabled: 完成apk签名

这个例子在build.gradle中配置了静态值 在build.gradle 文件的signingConfigs 中的release 属性下添加所有这些内容

android{
signingConfigs {
            release {
                keyAlias 'alias key'
                keyPassword 'key password'
                storePassword 'store Password'
                storeFile file("${directory}/releaseversion.keystore")
                v1SigningEnabled true
                v2SigningEnabled true

            }

          
        }
}

接下来在buildTypes 部分添加以下signingConfig

android{
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
}

接下来,用gradle命令重建你的项目

gradle clean build

它将生成已签名的发行版apk文件并准备推送到google play store。

如何从属性文件中读取签名密钥库并在gradle中生成签名发布的apk?

首先,我们在项目的config文件夹下有一个属性文件release.properties。

在release.properties中添加以下属性

storePassword=password
keyPassword=password-key
keyAlias=key-alias
storeFile=location of keystore file

这些值是占位符,所以用你的真实值来更新。

添加你的应用程序构建gradle文件来读取这个属性文件

def releaseFile = rootProject.file("../../release.properties")
def properties = new Properties()
properties.load(new FileInputStream(releaseFile))

用从属性文件中读取的值配置signingConfigs。

android {

    signingConfigs {
            release {
                keyAlias properties['keyAlias']
                keyPassword properties['keyPassword']
                storeFile file(properties['storeFile'])
                storePassword properties['storePassword']
            }
        }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

运行gradle命令来重建和生成api文件。

gradle clean build

总结

你学会了如何在android studio gradle build中生成android应用apk

  • 签名发布apk
  • 无符号发布的apk