在 Android 项目中使用 Gradle 进行打包,通常会涉及到配置 build.gradle
文件。其中,你需要指明签名配置(signing config)和构建类型(build type)。以下是一个基本的配置示例:
首先,在项目根目录下的 build.gradle
文件中确保你有正确版本的 Android Gradle 插件:
// 根目录的 build.gradle
buildscript {repositories {google()mavenCentral()}dependencies {classpath 'com.android.tools.build:gradle:X.Y.Z' // 使用你的Gradle插件版本替换 X.Y.Z}
}allprojects {repositories {google()mavenCentral()}
}
然后,在模块级别的 build.gradle
(通常位于 app/build.gradle
),你需要添加签名配置和构建类型。例如:
// 模块级的 build.gradle
android {...signingConfigs {release {// You should provide these values from a keystore properties file or environment variableskeyAlias 'yourKeyAlias'keyPassword 'yourKeyPassword'storeFile file('path/to/your/keystore.jks')storePassword 'yourStorePassword'}}buildTypes {release {minifyEnabled false // 设置为 true 将启用混淆proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}}...
}dependencies {...
}
请注意,签名配置中涉及敏感信息,包括密钥库路径、密钥库密码、密钥别名和密钥密码。这些信息不应该硬编码在 build.gradle
文件中,而是应该存储在本地并从环境变量或属性文件中读取。例如,你可以创建一个 keystore.properties
文件,并将其放在项目之外的安全位置:
storePassword=yourStorePassword
keyPassword=yourKeyPassword
keyAlias=yourKeyAlias
storeFile=path/to/your/keystore.jks
然后在 build.gradle
中读取这些属性:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('keystore.properties')
if (keystorePropertiesFile.exists()) {keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}android {...signingConfigs {release {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}}...
}
完成配置后,你可以通过命令行运行以下命令来生成发布版 APK 或者 AAB 文件:
./gradlew assembleRelease
或者如果你想生成并同时安装发布版本到连接的设备上,可以使用:
./gradlew installRelease
请确保你已经有了有效的签名配置,并且密钥库文件可用。选择 assembleRelease
或 installRelease
取决于你是否只想编译 APK/AAB 文件还是同时希望安装它。