From a458ea510569c1c8ef0ca67b8af21ccf9447c9a3 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期日, 19 十一月 2023 20:45:35 +0800
Subject: [PATCH] 0312 编译版本为30 要留意兼容性问题

---
 SdkProject/library/build.gradle |  209 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 198 insertions(+), 11 deletions(-)

diff --git a/SdkProject/library/build.gradle b/SdkProject/library/build.gradle
index 9eefdaf..f562d57 100644
--- a/SdkProject/library/build.gradle
+++ b/SdkProject/library/build.gradle
@@ -1,19 +1,59 @@
 plugins {
     id 'com.android.library'
+    id 'com.google.gms.google-services'
 }
 
+def rootPath = rootProject.getRootDir().getAbsolutePath()
+def channelPath = "${rootPath}/channel/${CHANNEL_NAME}"
+
+def applyGradle(String path) {
+    path = "${path}.gradle"
+    File file = file(path)
+    if (file.exists())
+        apply from: path
+}
+
+applyGradle("${rootPath}/utils")//宸ュ叿鑴氭湰
+applyGradle("${channelPath}/build")//娓犻亾鑴氭湰
+applyGradle("${channelPath}/deps")//娓犻亾鐨勮繙绋嬩緷璧栬剼鏈�
+
+Properties localProp = loadProperties('local')//鏈湴閰嶇疆
+Properties channelProp = loadProperties("${channelPath}/config")//娓犻亾鎵�灞炵殑閰嶇疆
+
+def outPutPath = localProp.getProperty("OUTPUT_PATH")//宸ョ▼sdk杈撳嚭璺緞
+
+//褰撳墠娓犻亾鎵�搴旂敤鐨勬彃浠跺悕
+def plugins = channelProp.getProperty("PLUGINS").split(';')
+//鎻掍欢鑴氭湰
+plugins.each {
+    applyGradle("${rootPath}/plugins/${it}/build")
+    applyGradle("${rootPath}/plugins/${it}/deps")
+}
+
+//娓犻亾闇�瑕佽鐩栦富鐩綍鐨刯ava鏂囦欢
+def channelJavaFiles = getAllFiles(new ArrayList<File>(), "${channelPath}/java")
+
 android {
-    compileSdkVersion 29
-    buildToolsVersion "30.0.2"
+    compileSdkVersion 30
+    buildToolsVersion "30.0.3"
 
     defaultConfig {
         minSdkVersion 21
-        targetSdkVersion 29
+        targetSdkVersion 31
         versionCode 1
         versionName "1.0"
 
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
+        multiDexEnabled true
+    }
+
+
+    flavorDimensions "version"
+    productFlavors {
+        merger {
+            dimension "version"
+        }
     }
 
     buildTypes {
@@ -26,14 +66,161 @@
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
+    packagingOptions {exclude 'META-INF/rxjava.properties'}
+    lintOptions {
+        checkReleaseBuilds false
+        abortOnError false
+    }
+
+    //鍚堝苟璧勬簮
+    sourceSets {
+        main {
+            java {
+                //鍓旈櫎涓荤洰褰曚笅锛屾笭閬撻噸澶嶇殑绫�
+                channelJavaFiles.each {
+                    def tag = "java\\"
+                    def str = it.getAbsolutePath()
+                    def str1 = str.substring(0, str.indexOf(tag))
+                    def str2 = str.substring(str1.length() + tag.length(), str.length())
+                    exclude str2
+                }
+            }
+        }
+        merger {
+            java {
+                srcDirs "${channelPath}/java"
+            }
+            jniLibs.srcDirs "${channelPath}/libs"
+            res.srcDirs "${channelPath}/res"
+            manifest {
+                File file = file("${channelPath}/AndroidManifest.xml")
+                if (file.exists())
+                    srcFile "${channelPath}/AndroidManifest.xml"
+            }
+            //鍚堝苟鎻掍欢
+            plugins.each {
+                def pluginPath = "${rootPath}/plugins/${it}"
+                java.srcDirs "${pluginPath}/java"
+                jniLibs.srcDirs "${pluginPath}libs"
+                res.srcDirs "${pluginPath}/res"
+                //娓呭崟鍙兘鍚堝苟涓�涓紝鎵�鏈夋彃浠剁殑娓呭崟闇�瑕佹墜鍔ㄥ鍒跺埌瀵瑰簲鐨勬笭閬撻噷
+            }
+        }
+    }
+}
+
+android.libraryVariants.all { variant ->
+    variant.outputs.all {
+        outputFileName = "library-${buildType.name}-${CHANNEL_NAME}.aar"
+    }
+}
+
+//鎷疯礉娓呭崟鏂囦欢
+task copyDebugManifest(type: Copy) {
+    from zipTree("build/outputs/aar/library-debug-${CHANNEL_NAME}.aar")
+    include "AndroidManifest.xml"
+    into "${outPutPath}\\${CHANNEL_NAME}\\debug"
+}
+//鎷疯礉娓呭崟鏂囦欢
+task copyManifest(type: Copy) {
+    dependsOn 'copyDebugManifest'
+    from zipTree("build/outputs/aar/library-release-${CHANNEL_NAME}.aar")
+    include "AndroidManifest.xml"
+    into "${outPutPath}\\${CHANNEL_NAME}\\release"
+}
+
+//鎷疯礉debug aar
+task copyDebugSdk(type: Copy) {
+    from "build/outputs/aar/"
+    include "library-debug-${CHANNEL_NAME}.aar"
+    into "${outPutPath}\\${CHANNEL_NAME}\\debug\\libs\\"
+}
+
+task copyReleaseSdk(type: Copy) {
+    from "build/outputs/aar/"
+    include "library-release-${CHANNEL_NAME}.aar"
+    into "${outPutPath}\\${CHANNEL_NAME}\\release\\libs\\"
+}
+
+task deleteSdk() {
+    delete "${outPutPath}\\${CHANNEL_NAME}\\debug"
+    delete "${outPutPath}\\${CHANNEL_NAME}\\release"
+}
+
+//鎵ц鎵撳寘浠诲姟浠ュ強鎷疯礉鍒板閮�
+task assembleAndCopySdk() {
+    dependsOn 'assemble'
+    dependsOn deleteSdk
+    dependsOn copyDebugSdk
+    dependsOn copyReleaseSdk
+
+    tasks.findByName('deleteSdk').mustRunAfter 'assembleMerger'
+    tasks.findByName('copyDebugSdk').mustRunAfter 'deleteSdk'
+    tasks.findByName('copyReleaseSdk').mustRunAfter 'deleteSdk'
+
+    //瀵煎嚭鎵�鏈夊閮ㄥ紩鐢�
+    String content = ""
+    def deps = file("${channelPath}\\deps.gradle")
+    deps.eachLine { line ->
+        if (line != null)
+            content += line + "\n"
+    }
+    plugins.each {
+        deps = file("${rootPath}/plugins/${it}/deps.gradle")
+        if(deps.exists()){
+            deps.eachLine { line ->
+                if (line != null)
+                    content += line + "\n"
+            }
+        }
+    }
+    def dir = new File("${outPutPath}\\${CHANNEL_NAME}")
+    def libraries = new File("${outPutPath}\\${CHANNEL_NAME}\\deps.gradle")
+    dir.mkdir()
+    if (libraries.exists())
+        libraries.delete()
+    if (!libraries.exists())
+        libraries.createNewFile()
+    libraries.text = content
 }
 
 dependencies {
-    implementation 'androidx.appcompat:appcompat:1.2.0'
-    implementation 'com.google.android.material:material:1.2.1'
-    testImplementation 'junit:junit:4.+'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+    implementation 'androidx.annotation:annotation:1.0.0'
+    testImplementation 'junit:junit:4.13.2'
+    //noinspection GradleCompatible
+//    implementation 'com.android.support:appcompat-v7:28.0.0'
 
-    implementation files('libs/unity-classes.jar')
-}
\ No newline at end of file
+//    implementation 'com.github.pqpo:Log4a:1.4.2@aar'
+
+    implementation fileTree(dir: "../channel/${CHANNEL_NAME}/libs/", include: ['*.jar'])
+    plugins.each {
+        implementation fileTree(dir: "${rootPath}/plugins/${it}/libs/", include: ['*.jar'])
+    }
+    implementation fileTree(dir: 'libs', include: ['*.jar'], exclude: ['unity-classes.jar'])
+    compileOnly files('libs/unity-classes.jar')
+
+    implementation('androidx.appcompat:appcompat:1.0.0') {
+        force = true
+    }
+
+    //sdk鎵�闇�渚濊禆
+    implementation 'androidx.recyclerview:recyclerview:1.0.0'
+    implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
+    //firebase
+    implementation(platform("com.google.firebase:firebase-bom:32.2.2"))
+    implementation 'com.google.firebase:firebase-analytics'
+    implementation 'com.google.firebase:firebase-auth'
+    // google
+    implementation 'com.google.android.gms:play-services-auth:20.6.0'
+    // facebook
+    implementation 'com.facebook.android:facebook-login:16.2.0'
+    implementation 'androidx.activity:activity-compose:1.3.1'
+    // google 鏀粯
+    implementation 'com.android.billingclient:billing:6.0.1'
+    implementation 'androidx.fragment:fragment:1.3.2'
+    // adjust 锛圴1.0.2鏂板锛�
+    implementation 'com.adjust.sdk:adjust-android:4.33.5'
+    implementation 'com.android.installreferrer:installreferrer:2.2'
+    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
+    implementation 'com.google.android.gms:play-services-appset:16.0.2'
+}

--
Gitblit v1.8.0