build.gradle 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. plugins {
  2. id 'com.android.application'
  3. id 'dagger.hilt.android.plugin'
  4. id 'stringfog'
  5. id 'com.google.firebase.crashlytics'
  6. id 'com.google.gms.google-services'
  7. }
  8. def LOCAL = "local", TEST = "test", PROD = "prod"
  9. def getServerHost(String env) {
  10. switch (env) {
  11. case "local":
  12. return "$local_server_host";
  13. case "test":
  14. return "$test_server_host";
  15. case "prod":
  16. return "$prod_server_host";
  17. default:
  18. return "$prod_server_host";
  19. }
  20. }
  21. android {
  22. namespace 'com.atmob.voiceai'
  23. compileSdk rootProject.compileSdkVersion
  24. defaultConfig {
  25. applicationId rootProject.applicationId
  26. minSdk rootProject.minSdkVersion
  27. targetSdk rootProject.targetSdkVersion
  28. versionCode rootProject.versionCode
  29. versionName rootProject.versionName
  30. ndk {
  31. //noinspection ChromeOsAbiSupport
  32. abiFilters "arm64-v8a"
  33. }
  34. }
  35. signingConfigs {
  36. debug {
  37. storeFile file("keystore/MartaAI.jks")
  38. storePassword "voice888"
  39. keyAlias "voice"
  40. keyPassword "voice888"
  41. }
  42. release {
  43. storeFile file("keystore/MartaAI.jks")
  44. storePassword "voice888"
  45. keyAlias "voice"
  46. keyPassword "voice888"
  47. }
  48. }
  49. def env_release = PROD
  50. def env_debug = PROD
  51. buildTypes {
  52. release {
  53. minifyEnabled true
  54. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  55. signingConfig signingConfigs.release
  56. buildConfigField "String", "ENV", "\"$env_release\""
  57. buildConfigField "String", "HOST", "\"${getServerHost(env_release)}\""
  58. buildConfigField "String", "LOCAL", "\"$LOCAL\""
  59. buildConfigField "String", "TEST", "\"$TEST\""
  60. buildConfigField "String", "PROD", "\"$PROD\""
  61. buildConfigField "String", "KOCHAVA", "\"$kochava_guid\""
  62. }
  63. debug {
  64. minifyEnabled false
  65. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  66. signingConfig signingConfigs.debug
  67. buildConfigField "String", "ENV", "\"$env_debug\""
  68. buildConfigField "String", "HOST", "\"${getServerHost(env_debug)}\""
  69. buildConfigField "String", "LOCAL", "\"$LOCAL\""
  70. buildConfigField "String", "TEST", "\"$TEST\""
  71. buildConfigField "String", "PROD", "\"$PROD\""
  72. buildConfigField "String", "KOCHAVA", "\"$kochava_guid\""
  73. }
  74. }
  75. compileOptions {
  76. sourceCompatibility JavaVersion.VERSION_1_8
  77. targetCompatibility JavaVersion.VERSION_1_8
  78. }
  79. buildFeatures {
  80. viewBinding true
  81. dataBinding true
  82. }
  83. applicationVariants.configureEach { variant ->
  84. def date = new Date().format("YYMMddHHmmss")
  85. def server = variant.buildType.name == "release" ? env_release : env_debug
  86. variant.outputs.configureEach {
  87. def fileName = "${defaultConfig.applicationId}" +
  88. "-v${defaultConfig.versionName}" +
  89. "-${variant.buildType.name}" +
  90. "-${server}" +
  91. "-${date}" +
  92. ".apk"
  93. outputFileName = fileName
  94. }
  95. }
  96. sourceSets {
  97. main { jniLibs.srcDirs = ['libs'] }
  98. }
  99. configurations.configureEach {
  100. resolutionStrategy {
  101. // don't cache changing modules at all
  102. cacheChangingModulesFor 10, 'seconds'
  103. }
  104. }
  105. }
  106. import com.github.megatronking.stringfog.plugin.kg.RandomKeyGenerator
  107. stringfog {
  108. implementation 'com.github.megatronking.stringfog.xor.StringFogImpl'
  109. fogPackages = ['com.atmob.voiceai']
  110. debug false
  111. enable true
  112. kg new RandomKeyGenerator()
  113. mode base64
  114. }
  115. dependencies {
  116. //jar or aar
  117. implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
  118. //Atmob SDK
  119. implementation 'extra.common:base:1.0.0-SNAPSHOT'
  120. implementation "extra.pack:channel:1.1.0-SNAPSHOT"
  121. implementation "extra.common:core:2.0.3-SNAPSHOT" //base utils
  122. implementation "extra.common:network:1.1.0-SNAPSHOT"
  123. implementation "extra.common:rxjava:1.1.0-SNAPSHOT"
  124. implementation "extra.common:user:1.0.1-SNAPSHOT" //get user data(includes device info)
  125. implementation("plus.pay:pay:1.1.0-SNAPSHOT") {
  126. exclude group: 'third.pay', module: 'ali'
  127. }
  128. api 'com.alipay.sdk:alipaysdk-android:15.8.16@aar'
  129. //AppCompat
  130. implementation "androidx.appcompat:appcompat:$rootProject.appcompat_version"
  131. //Material
  132. implementation "com.google.android.material:material:$rootProject.material_version"
  133. //RecyclerView
  134. implementation "androidx.recyclerview:recyclerview:$rootProject.recyclerview_version"
  135. //ConstraintLayout
  136. implementation "androidx.constraintlayout:constraintlayout:$rootProject.constraintlayout_version"
  137. //Gson
  138. implementation "com.google.code.gson:gson:$rootProject.gson_version"
  139. //Lifecycle
  140. implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$rootProject.lifecycle_version"
  141. implementation "androidx.lifecycle:lifecycle-livedata:$rootProject.lifecycle_version"
  142. implementation "androidx.lifecycle:lifecycle-reactivestreams:$rootProject.lifecycle_version"
  143. implementation "androidx.lifecycle:lifecycle-process:$rootProject.lifecycle_version"
  144. //Hilt
  145. implementation "com.google.dagger:hilt-android:$rootProject.hilt_version"
  146. annotationProcessor "com.google.dagger:hilt-compiler:$rootProject.hilt_version"
  147. //Glide
  148. implementation "com.github.bumptech.glide:glide:$rootProject.glide_version"
  149. annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glide_version"
  150. //MMKV
  151. implementation "com.tencent:mmkv:$rootProject.mmkv_version"
  152. //immersionbar
  153. implementation "com.gyf.immersionbar:immersionbar:$rootProject.immersionbar_version"
  154. implementation "com.gyf.immersionbar:immersionbar-components:$rootProject.immersionbar_version"
  155. //字符串加密算法
  156. implementation "com.github.megatronking.stringfog:xor:$rootProject.stringfog_version"
  157. //音频播放
  158. implementation "androidx.media3:media3-exoplayer:$rootProject.media3_version"
  159. //VapPlayer 动效
  160. implementation "io.github.tencent:vap:2.0.28"
  161. //lottie
  162. implementation "com.airbnb.android:lottie:$rootProject.lottie_version"
  163. //google结算库
  164. implementation "com.android.billingclient:billing:$rootProject.billing_version"
  165. //设备检查
  166. implementation "extra.common:checker:1.2.1-SNAPSHOT"
  167. //Kochava
  168. dependencies {
  169. def kochava_tracker_version = "4.3.0"
  170. implementation("com.kochava.tracker:tracker:$kochava_tracker_version") // Required
  171. implementation("com.kochava.tracker:events:$kochava_tracker_version") // Optional
  172. implementation("com.kochava.tracker:engagement:$kochava_tracker_version") // Optional
  173. implementation("com.kochava.tracker:datapointnetwork:$kochava_tracker_version") // Optional
  174. implementation("com.kochava.tracker:legacyreferrer:$kochava_tracker_version") // Optional
  175. }
  176. //firebase
  177. implementation platform('com.google.firebase:firebase-bom:30.4.1')
  178. implementation 'com.google.firebase:firebase-crashlytics'
  179. implementation 'com.google.firebase:firebase-analytics'
  180. implementation 'com.google.firebase:firebase-messaging'
  181. }