./gradlew assembleRelease

在 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

请确保你已经有了有效的签名配置,并且密钥库文件可用。选择 assembleReleaseinstallRelease 取决于你是否只想编译 APK/AAB 文件还是同时希望安装它。

相关推荐
程楠楠&M3 天前
uni-app运行到 Android 真机和Android studio模拟器
android·uni-app·android studio
闪闪加油干(◍>∇<◍)ノ゙3 天前
Android Studio中断点调试
android studio
INF_5123 天前
Android Studio 占满C盘快速解决方法
android·ide·android studio
PleaSure乐事5 天前
【AndroidStudio】关于AndroidStudio的常见控件TextView和Button
java·学习·android studio·安卓·移动应用开发
咸芝麻鱼5 天前
Android Studio中导入了包,但无法识别 WindowSizeClass 和相关函数的问题
android·ide·android studio
佛系小嘟嘟5 天前
Android Studio 新版本 Logcat 的使用详解
android·gitee·android studio
编程乐学7 天前
网络资源模板--Android Studio 零食工坊(商城)
android·android studio·商城·大作业·安卓课设·购物商城
沐言人生7 天前
Android10 Framework—Init进程-5.SEAndroid机制
android·android studio·android jetpack
奋斗音音8 天前
Android Studio :The emulator process for AVD was killed。
android·ide·android studio
weixin_563371479 天前
Android studio配置AVD虚拟机
java·android studio