import org.json.JSONObject apply plugin: 'com.android.application' apply from: 'xmlclassguard.gradle' android { compileSdkVersion 31 flavorDimensions "baseUrl" productFlavors { userdev { dimension "baseUrl" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user8/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://saffron.ghpcarphone.com/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user1 { //ghpcarphone dimension "baseUrl" applicationId "com.ghpcarphone.ussd" buildConfigField "String", "BASE_URL", "\"https://www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"bfbc2f7f-779a-4719-9295-60eefbb9269f\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user1/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user2 { //dcduckcake dimension "baseUrl" applicationId "com.dcduckcake.ussd" buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\"" buildConfigField "String", "UPDATE_KEY", "\"2be6db19-4be6-45f5-8a93-368ad7cb6405\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user3 { //bcblackcoffee dimension "baseUrl" applicationId "com.bcblackcoffee.ussd" buildConfigField "String", "BASE_URL", "\"https://www.bcblackcoffee.com\"" buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user4 { //lkluckpanda dimension "baseUrl" applicationId "com.lkluckpanda.ussd" buildConfigField "String", "BASE_URL", "\"https://www.lkluckpanda.com\"" buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user4/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user5 { dimension "baseUrl" applicationId "com.user.ussd" buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\"" buildConfigField "String", "UPDATE_KEY", "\"f6602356-ff46-422e-87ba-d5fbe3f0adf7\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user5/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://stretch.dcduckcake.com/ca4c62f1ae5f4514acc6132a9f2716a7/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user6 { //喀麦隆 com.ghpcarphone.cm dimension "baseUrl" applicationId "com.ghpcarphone.cm" buildConfigField "String", "BASE_URL", "\"https://cm-www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"455b5053-9d7f-43ae-a115-76f16cfaf3f5\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user6/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://cm-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user7 { //斯里兰卡 包名com.si.ussd dimension "baseUrl" applicationId "com.si.ussd" buildConfigField "String", "BASE_URL", "\"https://www.lovepizzaxx.com\"" buildConfigField "String", "UPDATE_KEY", "\"d3bf5c93-5119-4092-bd5f-a3e99fbce2ed\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user7/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://lk-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user8 { //肯尼亚 包名com.kpkingpark.ussd dimension "baseUrl" applicationId "com.kpkingpark.ussd" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user8/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://saffron.ghpcarphone.com/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user9 { //科特迪瓦 包名com.ghpcarphone.cote dimension "baseUrl" applicationId "com.ghpcarphone.cote" buildConfigField "String", "BASE_URL", "\"https://cote-www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"bbddc5d7-9d45-4a3b-afdd-a8a36c96f4af\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user9/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://ci-naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user10 { //测试-0 //包名:com.nbwz.lvix.gdjgnp.gfhw, //密钥:appkey2254.jks //app名称:IronMan dimension "baseUrl" applicationId "com.nbwz.lvix.gdjgnp.gfhw" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user11 { //测试-1 //包名:com.cdfo.emvyey.axkcae.ixjl //密钥:appkey201517_1 //app名称:CaptainAmerica //下载路径:http://up.lkluckpanda.online/user10/man/t1/guy.apk applicationId "com.cdfo.emvyey.axkcae.ixjl" dimension "baseUrl" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t1/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user12 { //测试-2 //包名:com.fyxmwe.ewha.dfajdm.lfuqog //密钥:appkey201519_2 //app名称:Thor //下载路径:http://up.lkluckpanda.online/user10/man/t2/guy.apk applicationId "com.fyxmwe.ewha.dfajdm.lfuqog" dimension "baseUrl" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t2/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user13 { //测试-3 //包名:com.dwvb.axg.lyg.fbcq //密钥:appkey201520_3 //app名称:Black Widow //下载路径:http://up.lkluckpanda.online/user10/man/t3/guy.apk applicationId "com.dwvb.axg.lyg.fbcq" dimension "baseUrl" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t3/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" } user14 { //测试-4 //包名:com.npyv.gqaokx.mdqd.pebxr //密钥:appkey2042191.jks //app名称:B //下载路径:http://up.lkluckpanda.online/user10/man/t4/guy.apk applicationId "com.npyv.gqaokx.mdqd.pebxr" dimension "baseUrl" buildConfigField "String", "BASE_URL", "\"https://india.gdtabletouch.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t4/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"13.212.226.7\"" buildConfigField "String", "FRPC_PORT", "\"11080\"" } } defaultConfig { minSdkVersion 29 targetSdkVersion 29 versionCode 49 versionName "0.40.3.0" multiDexEnabled true // ndk { // abiFilters 'armeabi-v8a', 'armeabi-v7a' // } testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } buildFeatures { viewBinding = true } signingConfigs { normal { storeFile file('..\\app\\frpcapp.jks') storePassword 'frpcapp' keyAlias = 'frpcapp' keyPassword 'frpcapp' } user10 { storeFile file('..\\app\\appkey2254.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user11 { storeFile file('..\\app\\appkey201517_1.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user12 { storeFile file('..\\app\\appkey201519_2.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user13 { storeFile file('..\\app\\appkey201520_3.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user14 { storeFile file('..\\app\\appkey2042191.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } } buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled true zipAlignEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-fresco.pro' productFlavors.user14.signingConfig signingConfigs.user14 productFlavors.user13.signingConfig signingConfigs.user13 productFlavors.user12.signingConfig signingConfigs.user12 productFlavors.user11.signingConfig signingConfigs.user11 productFlavors.user10.signingConfig signingConfigs.user10 productFlavors.user9.signingConfig signingConfigs.normal productFlavors.user8.signingConfig signingConfigs.normal productFlavors.user7.signingConfig signingConfigs.normal productFlavors.user6.signingConfig signingConfigs.normal productFlavors.user5.signingConfig signingConfigs.normal productFlavors.user4.signingConfig signingConfigs.normal productFlavors.user3.signingConfig signingConfigs.normal productFlavors.user2.signingConfig signingConfigs.normal productFlavors.user1.signingConfig signingConfigs.normal productFlavors.userdev.signingConfig signingConfigs.normal } debug { buildConfigField "boolean", "LOG_DEBUG", "true" minifyEnabled false zipAlignEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' productFlavors.user14.signingConfig signingConfigs.user14 productFlavors.user13.signingConfig signingConfigs.user13 productFlavors.user12.signingConfig signingConfigs.user12 productFlavors.user11.signingConfig signingConfigs.user11 productFlavors.user10.signingConfig signingConfigs.user10 productFlavors.user9.signingConfig signingConfigs.normal productFlavors.user8.signingConfig signingConfigs.normal productFlavors.user7.signingConfig signingConfigs.normal productFlavors.user6.signingConfig signingConfigs.normal productFlavors.user5.signingConfig signingConfigs.normal productFlavors.user4.signingConfig signingConfigs.normal productFlavors.user3.signingConfig signingConfigs.normal productFlavors.user2.signingConfig signingConfigs.normal productFlavors.user1.signingConfig signingConfigs.normal productFlavors.userdev.signingConfig signingConfigs.normal } } repositories { jcenter() flatDir { dirs 'libs' } } applicationVariants.configureEach { variant -> variant.outputs.configureEach { outputFileName = "guy.apk" def flavorName = variant.productFlavors.get(0).name def dimension = variant.productFlavors.get(0).dimension def applicationId = variant.productFlavors.get(0).applicationId def baseUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("BASE_URL").value def updateKey = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_KEY").value def updateBaseUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_BASE_URL").value def updateAppName = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_APP_NAME").value def updateJson = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_JSON").value def webUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("WEB_URL").value def frpcIp = android.productFlavors.getByName(flavorName).buildConfigFields.get("FRPC_IP").value def frpcPort = android.productFlavors.getByName(flavorName).buildConfigFields.get("FRPC_PORT").value def json = new JSONObject() def map = new HashMap(); map.put("flavorName", flavorName) map.put("dimension", dimension) map.put("baseUrl", baseUrl) map.put("applicationId", applicationId) map.put("updateKey", updateKey) map.put("updateBaseUrl", updateBaseUrl) map.put("updateAppName", updateAppName) map.put("updateJson", updateJson) map.put("webUrl", webUrl) map.put("frpcIp", frpcIp) map.put("frpcPort", frpcPort) json.put("versionName", variant.versionName)//版本名称 json.put("versionCode", variant.versionCode)//版本号 json.put("description", "New features\n")//更新内容 json.put("isForce", false)//是否强制更新 json.put("title", "New version updated")//更新dialog显示的标题头 json.put("chatId", "-1001958143149L")//日志chat_id json.put("botToken", "6428083297:AAEFS5ccl49hBsYbGAqJdEM5Cv8bvHUTC4I")//日志token json.put("config", map) // 获取 APK 文件的父文件夹 def apkFilePath = outputFile.parent def targetFolder = file(apkFilePath) targetFolder.mkdirs() // 写入 JSON 文件 def jsonFile = file("${apkFilePath}/config.json") jsonFile.write(json.toString()) } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.1.0' implementation 'androidx.navigation:navigation-fragment:2.3.0' implementation 'androidx.navigation:navigation-ui:2.3.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation(name: 'frpclib', ext: 'aar') implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'com.jakewharton:butterknife:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' implementation 'com.squareup.retrofit2:retrofit:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.16' implementation 'com.github.ahmadaghazadeh:CodeEditor:1.0.17' implementation 'com.afollestad.material-dialogs:core:0.9.6.0' implementation 'org.jetbrains:annotations:15.0' implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4' implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0' implementation 'com.google.android.material:material:1.5.0' implementation "androidx.multidex:multidex:2.0.1" def room_version = "2.4.1" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-rxjava2:$room_version" implementation 'com.blankj:utilcodex:1.30.6' implementation 'androidx.work:work-runtime:2.7.0' implementation 'org.xutils:xutils:3.9.0' implementation 'com.alibaba:fastjson:1.2.73' implementation 'com.github.sanyinchen:LogView:v1.0' def appCenterSdkVersion = '5.0.0' implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}" implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}" implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}" implementation project(':ussd-library') }