Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
84 lines
2.9 KiB
Kotlin
84 lines
2.9 KiB
Kotlin
buildscript {
|
||
repositories {
|
||
maven("https://maven.aliyun.com/repository/google")
|
||
maven("https://maven.aliyun.com/repository/central")
|
||
maven("https://developer.huawei.com/repo/")
|
||
google()
|
||
mavenCentral()
|
||
}
|
||
// agcp 1.9.x 用 apply() 时会检查 buildscript classpath 里有没有 AGP;
|
||
// 仅靠 plugins DSL 会报「com.android.tools.build:gradle is no set」。
|
||
dependencies {
|
||
classpath("com.android.tools.build:gradle:9.0.1")
|
||
classpath("com.huawei.agconnect:agcp:1.9.5.301")
|
||
}
|
||
}
|
||
|
||
plugins {
|
||
id("com.android.application")
|
||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||
id("dev.flutter.flutter-gradle-plugin")
|
||
}
|
||
|
||
// 华为 agconnect-services.json 到位后才启用 AGConnect 插件,避免缺文件时整包编不过。
|
||
// 文件从华为 AppGallery Connect 下载,放到本目录,不要提交进 Git。
|
||
// jpush_flutter_android 只在自己的 library 模块 apply 该插件,不会处理本 app 的配置文件,
|
||
// 所以这里仍要在 :app 上 apply,并不是重复。
|
||
if (file("agconnect-services.json").exists()) {
|
||
apply(plugin = "com.huawei.agconnect")
|
||
}
|
||
|
||
android {
|
||
namespace = "cn.solsum.jinxunda"
|
||
compileSdk = flutter.compileSdkVersion
|
||
ndkVersion = flutter.ndkVersion
|
||
|
||
compileOptions {
|
||
sourceCompatibility = JavaVersion.VERSION_17
|
||
targetCompatibility = JavaVersion.VERSION_17
|
||
}
|
||
|
||
defaultConfig {
|
||
applicationId = "cn.solsum.jinxunda"
|
||
// 极光厂商通道插件要求 minSdk 24
|
||
minSdk = 24
|
||
targetSdk = flutter.targetSdkVersion
|
||
versionCode = flutter.versionCode
|
||
versionName = flutter.versionName
|
||
manifestPlaceholders["JPUSH_PKGNAME"] = "cn.solsum.jinxunda"
|
||
manifestPlaceholders["JPUSH_APPKEY"] = "95fc2352648a7d4568ac8d72"
|
||
manifestPlaceholders["JPUSH_CHANNEL"] = "developer-default"
|
||
}
|
||
|
||
// 压缩打包 .so(默认未压缩存储,OpenIM/WebRTC 的 native 库让包多占近一倍体积);
|
||
// 代价是安装时多解压一次,对内网分发来说体积更关键。
|
||
packaging {
|
||
jniLibs {
|
||
useLegacyPackaging = true
|
||
}
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
// OpenIM 插件靠反射按字段名分发方法调用,R8/混淆会把字段改名导致
|
||
// 所有 SDK 调用静默无响应(表现为 initSDK 永久不返回)。
|
||
// 与官方样板工程一致:release 关闭混淆和资源压缩。
|
||
isMinifyEnabled = false
|
||
isShrinkResources = false
|
||
// TODO: Add your own signing config for the release build.
|
||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||
signingConfig = signingConfigs.getByName("debug")
|
||
}
|
||
}
|
||
}
|
||
|
||
kotlin {
|
||
compilerOptions {
|
||
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
|
||
}
|
||
}
|
||
|
||
flutter {
|
||
source = "../.."
|
||
}
|