188 lines
6.7 KiB
Groovy
188 lines
6.7 KiB
Groovy
def localProperties = new Properties()
|
||
def localPropertiesFile = rootProject.file('local.properties')
|
||
if (localPropertiesFile.exists()) {
|
||
localPropertiesFile.withReader('UTF-8') { reader ->
|
||
localProperties.load(reader)
|
||
}
|
||
}
|
||
|
||
def flutterRoot = localProperties.getProperty('flutter.sdk')
|
||
if (flutterRoot == null) {
|
||
// throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||
throw new Exception("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||
}
|
||
|
||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||
if (flutterVersionCode == null) {
|
||
flutterVersionCode = '1'
|
||
}
|
||
|
||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||
if (flutterVersionName == null) {
|
||
flutterVersionName = '1.0'
|
||
}
|
||
|
||
apply plugin: 'com.android.application'
|
||
apply plugin: 'kotlin-android'
|
||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||
|
||
android {
|
||
signingConfigs {
|
||
// 这里“debug”不是一个自定义变量,而是一个特定的关键词,凡是使用--debug模式,都会引用到这里
|
||
// 目前看来,debug模式没办法在buildTypes里面按flavors指定编译签名,所有口味的debug模式只能用同一个签名
|
||
debug {
|
||
storeFile file("starlock.keystore")
|
||
storePassword '123456'
|
||
keyAlias = 'starlock'
|
||
keyPassword '123456'
|
||
}
|
||
// 下面的pre、sky、xhj 都是自定义变量,自身不起任何作用,而是看哪里引用了它们
|
||
pre {
|
||
storeFile file("starlock.keystore")
|
||
storePassword '123456'
|
||
keyAlias = 'starlock'
|
||
keyPassword '123456'
|
||
}
|
||
sky {
|
||
// CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
|
||
storeFile file("sky.jks")
|
||
storePassword 'sky2028'
|
||
keyAlias = 'upload'
|
||
keyPassword 'sky2028'
|
||
}
|
||
xhj {
|
||
storeFile file("xhj.jks")
|
||
storePassword 'xhj8872'
|
||
keyAlias = 'upload'
|
||
keyPassword 'xhj8872'
|
||
}
|
||
}
|
||
// ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
|
||
flavorDimensions "flavor-type"
|
||
|
||
productFlavors {
|
||
dev {
|
||
dimension "flavor-type"
|
||
applicationId "com.starlock.lock.dev"
|
||
signingConfig signingConfigs.pre
|
||
resValue "string", "app_name", "星锁-dev"
|
||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev"
|
||
}
|
||
pre {
|
||
dimension "flavor-type"
|
||
applicationId "com.starlock.lock.pre"
|
||
signingConfig signingConfigs.pre
|
||
resValue "string", "app_name", "星锁"
|
||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre"
|
||
}
|
||
sky {
|
||
dimension "flavor-type"
|
||
applicationId "com.skychip.lock"
|
||
signingConfig signingConfigs.sky
|
||
resValue "string", "app_name", "锁通通"
|
||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock"
|
||
}
|
||
xhj {
|
||
dimension "flavor-type"
|
||
applicationId "com.xhjcn.lock"
|
||
signingConfig signingConfigs.xhj
|
||
resValue "string", "app_name", "鑫锁"
|
||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock"
|
||
}
|
||
}
|
||
|
||
// ----- END flavorDimensions (autogenerated by flutter_flavorizr) -----
|
||
|
||
|
||
compileSdkVersion flutter.compileSdkVersion
|
||
ndkVersion flutter.ndkVersion
|
||
|
||
lintOptions{
|
||
checkReleaseBuilds false
|
||
abortOnError false
|
||
}
|
||
|
||
|
||
compileOptions {
|
||
sourceCompatibility JavaVersion.VERSION_1_8
|
||
targetCompatibility JavaVersion.VERSION_1_8
|
||
}
|
||
|
||
kotlinOptions {
|
||
jvmTarget = '1.8'
|
||
}
|
||
|
||
sourceSets {
|
||
main.java.srcDirs += 'src/main/kotlin'
|
||
}
|
||
|
||
defaultConfig {
|
||
applicationId "com.skychip.lock"
|
||
// You can update the following values to match your application needs.
|
||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||
minSdkVersion 25
|
||
targetSdkVersion 33
|
||
versionCode flutterVersionCode.toInteger()
|
||
versionName flutterVersionName
|
||
|
||
// 为减少体积,使用不同架构分包发布编译选项 flutter build apk --split-per-abi
|
||
// 所以需要禁用ndk在同一个个包中包含多个架构
|
||
// 但是禁用NDK配置,又无法使用flutter run 命令了,因为编译完成它按照名称匹配找不到.apk包
|
||
ndk {
|
||
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
|
||
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
|
||
}
|
||
|
||
manifestPlaceholders = [
|
||
JPUSH_PKGNAME : "这里不重要,在口味配置",
|
||
//JPush 上注册的包名对应的 Appkey.
|
||
JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",
|
||
//暂时填写默认值即可.
|
||
JPUSH_CHANNEL : "flutter_channel",
|
||
|
||
//若不集成厂商通道,可直接跳过以下配置
|
||
XIAOMI_APPID : "MI-2882303761520287291",
|
||
XIAOMI_APPKEY : "MI-5352028744291",
|
||
]
|
||
splits {
|
||
abi {
|
||
enable true
|
||
reset()
|
||
// x86_64,x86,armeabi-v7a,armeabi,arm64-v8a
|
||
// x86_64,x86,armeabi-v7a,armeabi,arm64-v8a
|
||
include "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
|
||
universalApk true
|
||
}
|
||
}
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
// 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
|
||
// 为release模式设置混淆可以解决地图闪退问题
|
||
// 真实的解决办法
|
||
minifyEnabled false
|
||
shrinkResources false
|
||
productFlavors.dev.signingConfig signingConfigs.pre
|
||
productFlavors.pre.signingConfig signingConfigs.pre
|
||
productFlavors.sky.signingConfig signingConfigs.sky
|
||
productFlavors.xhj.signingConfig signingConfigs.xhj
|
||
}
|
||
}
|
||
}
|
||
|
||
flutter {
|
||
source '../..'
|
||
}
|
||
|
||
dependencies {
|
||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||
implementation('com.amap.api:location:5.6.0')
|
||
implementation('com.amap.api:3dmap:8.1.0')
|
||
|
||
implementation 'cn.jiguang.sdk:jpush:5.2.3'
|
||
implementation 'com.huawei.hms:push:6.12.0.300'
|
||
|
||
implementation 'cn.jiguang.sdk.plugin:xiaomi:5.2.3'
|
||
}
|