feat(app): E.1 内测 APK 构建配置 — Android 品牌化 + 签名 + ProGuard
- 更新应用名称为「暖记」(AndroidManifest + strings.xml) - 添加必要权限: INTERNET, CAMERA, READ_MEDIA_IMAGES, READ_EXTERNAL_STORAGE - 生成 release 签名密钥 (RSA 2048, 10000 天有效期) - 配置 ProGuard/R8 代码混淆 + 资源压缩 - 品牌化启动页: 奶油白背景 + 珊瑚色圆形「暖」字 logo - 品牌化应用图标: 各密度 mipmap (mdpi~xxxhdpi) - 添加阿里云 Maven 镜像加速依赖下载 - AGP 9.x 兼容: 自动为旧 Flutter 插件注入 namespace - Gradle 性能优化: 并行编译 + 构建缓存
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
allprojects {
|
||||
repositories {
|
||||
// 阿里云 Maven 镜像 — 加速中国大陆依赖下载
|
||||
maven { url = uri("https://maven.aliyun.com/repository/google") }
|
||||
maven { url = uri("https://maven.aliyun.com/repository/central") }
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
@@ -15,6 +18,28 @@ subprojects {
|
||||
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
|
||||
project.layout.buildDirectory.value(newSubprojectBuildDir)
|
||||
}
|
||||
|
||||
subprojects {
|
||||
// 为缺少 namespace 的旧 Flutter 插件自动注入 namespace
|
||||
// 解决 AGP 9.x 要求必须指定 namespace 的问题
|
||||
plugins.withId("com.android.library") {
|
||||
val android = project.extensions.getByName("android")
|
||||
if (android is com.android.build.gradle.LibraryExtension && android.namespace == null) {
|
||||
val manifestFile = project.file("src/main/AndroidManifest.xml")
|
||||
if (manifestFile.exists()) {
|
||||
val packageName = manifestFile.readLines()
|
||||
.firstOrNull { it.contains("package=") }
|
||||
?.let { line ->
|
||||
Regex("package=\"([^\"]+)\"").find(line)?.groupValues?.get(1)
|
||||
}
|
||||
if (packageName != null) {
|
||||
android.namespace = packageName
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user