在 Android 项目中使用 Gradle 进行打包,通常会涉及到配置 build.gradle
文件。其中,你需要指明签名配置(signing config)和构建类型(build type)。以下是一个基本的配置示例:
首先,在项目根目录下的 build.gradle
文件中确保你有正确版本的 Android Gradle 插件:
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
),你需要添加签名配置和构建类型。例如:
gradle
// 模块级的 build.gradle
android {
...
signingConfigs {
release {
// You should provide these values from a keystore properties file or environment variables
keyAlias '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
文件,并将其放在项目之外的安全位置:
properties
storePassword=yourStorePassword
keyPassword=yourKeyPassword
keyAlias=yourKeyAlias
storeFile=path/to/your/keystore.jks
然后在 build.gradle
中读取这些属性:
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 文件:
sh
./gradlew assembleRelease
或者如果你想生成并同时安装发布版本到连接的设备上,可以使用:
sh
./gradlew installRelease
请确保你已经有了有效的签名配置,并且密钥库文件可用。选择 assembleRelease
或 installRelease
取决于你是否只想编译 APK/AAB 文件还是同时希望安装它。