build.gradle 7.5 KB

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