Jelajahi Sumber

build(android): 配置安卓签名和混淆规则,更新默认连接地址

1. 新增安卓打包签名配置,支持debug和release签名
2. 添加proguard混淆规则文件并配置到构建选项
3. 将默认LiveKit连接地址从本地改为服务器公网地址
wenhongquan 3 minggu lalu
induk
melakukan
d1afb91175

+ 33 - 2
flutter_asr_client/android/app/build.gradle.kts

@@ -5,6 +5,9 @@ plugins {
     id("dev.flutter.flutter-gradle-plugin")
     id("dev.flutter.flutter-gradle-plugin")
 }
 }
 
 
+import java.util.Properties
+import java.io.FileInputStream
+
 android {
 android {
     namespace = "com.dinnoni.asr_client"
     namespace = "com.dinnoni.asr_client"
     compileSdk = flutter.compileSdkVersion
     compileSdk = flutter.compileSdkVersion
@@ -19,6 +22,27 @@ android {
         jvmTarget = JavaVersion.VERSION_17.toString()
         jvmTarget = JavaVersion.VERSION_17.toString()
     }
     }
 
 
+    val keystorePropertiesFile = rootProject.file("key.properties")
+    val keystoreProperties = Properties()
+    if (keystorePropertiesFile.exists()) {
+        keystoreProperties.load(FileInputStream(keystorePropertiesFile))
+    }
+
+    signingConfigs {
+        create("release") {
+            keyAlias = keystoreProperties["keyAlias"] as String
+            keyPassword = keystoreProperties["keyPassword"] as String
+            storeFile = file(keystoreProperties["storeFile"] as String)
+            storePassword = keystoreProperties["storePassword"] as String
+        }
+        getByName("debug") {
+            keyAlias = keystoreProperties["keyAlias"] as String
+            keyPassword = keystoreProperties["keyPassword"] as String
+            storeFile = file(keystoreProperties["storeFile"] as String)
+            storePassword = keystoreProperties["storePassword"] as String
+        }
+    }
+
     defaultConfig {
     defaultConfig {
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         applicationId = "com.dinnoni.asr_client"
         applicationId = "com.dinnoni.asr_client"
@@ -32,8 +56,15 @@ android {
 
 
     buildTypes {
     buildTypes {
         release {
         release {
-            // 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("release")
+            isMinifyEnabled = false
+            isShrinkResources = false
+            proguardFiles(
+                getDefaultProguardFile("proguard-android-optimize.txt"),
+                "proguard-rules.pro"
+            )
+        }
+        debug {
             signingConfig = signingConfigs.getByName("debug")
             signingConfig = signingConfigs.getByName("debug")
         }
         }
     }
     }

+ 8 - 0
flutter_asr_client/android/app/proguard-rules.pro

@@ -0,0 +1,8 @@
+# Flutter / Dart
+-keep class io.flutter.app.** { *; }
+-keep class io.flutter.plugin.** { *; }
+-keep class io.flutter.util.** { *; }
+-keep class io.flutter.view.** { *; }
+-keep class io.flutter.** { *; }
+-keep class io.flutter.plugins.** { *; }
+-dontwarn io.flutter.**

+ 1 - 1
flutter_asr_client/lib/common/constants.dart

@@ -13,5 +13,5 @@ abstract final class AppConstants {
   static const reconnectBaseDelay = Duration(seconds: 1);
   static const reconnectBaseDelay = Duration(seconds: 1);
   static const reconnectMaxDelay = Duration(seconds: 30);
   static const reconnectMaxDelay = Duration(seconds: 30);
   static const appName = '检测数据采集';
   static const appName = '检测数据采集';
-  static const defaultLiveKitUrl = 'ws://localhost:7888';
+  static const defaultLiveKitUrl = 'ws://36.152.142.37:10003';
 }
 }