From 120d3315fccfacfcd20f93e82281dba5a3e9454f Mon Sep 17 00:00:00 2001 From: Foldcc_b1 Date: Tue, 7 Nov 2023 18:54:01 +0800 Subject: [PATCH] 1.0.17 --- .../Resources/Assets/ATPluginSetting.asset | 2 +- .../Editor/AD_BuildAndroidProcess.cs | 121 ++++++++++++------ package.json | 2 +- 3 files changed, 82 insertions(+), 43 deletions(-) diff --git a/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset b/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset index 953ab70..97234e1 100644 --- a/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset +++ b/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset @@ -22,7 +22,7 @@ MonoBehaviour: PluginFileName: AnyThinkCore.unitypackage PluginFilePaths: [] LatestVersions: - Unity: 2.0.1 + Unity: 2.0.2 Android: 6.2.72 Ios: 6.2.68 CurrentVersions: diff --git a/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs b/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs index 9c82ec7..1db6a6a 100644 --- a/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs +++ b/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs @@ -1,5 +1,7 @@ #if UNITY_ANDROID +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Xml.Linq; using UnityEngine; using UnityEditor; @@ -13,17 +15,17 @@ namespace Topon_Adapter.Editor private static readonly XNamespace ToolsNamespace = "http://schemas.android.com/tools"; - public void OnPostGenerateGradleAndroidProject(string path) + public void OnPostGenerateGradleAndroidProject (string path) { - ProcessAndroidManifest(path); + ProcessAndroidManifest (path); } - public static void ProcessAndroidManifest(string path) + public static void ProcessAndroidManifest (string path) { #if UNITY_2019_3_OR_NEWER - var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml"); - var launcherManifestPath = Path.Combine(path, "../launcher/src/main/AndroidManifest.xml"); + var manifestPath = Path.Combine (path, "src/main/AndroidManifest.xml"); + var launcherManifestPath = Path.Combine (path, "../launcher/src/main/AndroidManifest.xml"); #else var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml"); #endif @@ -32,72 +34,109 @@ namespace Topon_Adapter.Editor XDocument launcherManifest; try { - manifest = XDocument.Load(manifestPath); + manifest = XDocument.Load (manifestPath); launcherManifest = XDocument.Load (launcherManifestPath); } #pragma warning disable 0168 catch (IOException exception) #pragma warning restore 0168 { - ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is missing."); + ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is missing."); return; } // Get the `manifest` element. - var elementManifest = manifest.Element("manifest"); + var elementManifest = manifest.Element ("manifest"); if (elementManifest == null) { - ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid."); + ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is invalid."); return; } - var elementApplication = elementManifest.Element("application"); + var elementApplication = elementManifest.Element ("application"); if (elementApplication == null) { - ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid."); + ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is invalid."); return; } - var queries = CreateQueries(); - elementManifest.Add(queries); - elementApplication.Add(CreateActivityXML()); + var queries = CreateQueries (); + + var xManifestElements = elementManifest.Descendants (); + var xApplicationElements = elementApplication.Descendants (); + var useQueries = xManifestElements.Where (element => element.Name.LocalName.Equals ("package")); + XElement tencentElement = GetElementByName (useQueries, "com.tencent.mm"); + if (tencentElement == null) + { + elementManifest.Add (queries); + } + + var wxElements = xApplicationElements.Where (element => element.Name.LocalName.Equals ("activity")); + XElement wxElement = GetElementByName (wxElements, ".wxapi.WXEntryActivity"); + if (wxElement != null) + { + wxElement.Remove (); + } + + elementApplication.Add (CreateActivityXML ()); + + + var elementlauncherManifest = launcherManifest.Element ("manifest"); + var elementlauncherApplication = elementlauncherManifest.Element ("application"); + + var csjElements = elementlauncherApplication.Descendants ().Where (element => element.Name.LocalName.Equals ("provider")); + XElement csjElement = GetElementByName (csjElements, "com.bytedance.sdk.openadsdk.TTFileProvider"); + if (csjElement == null) + { + //增加穿山甲配置 + elementlauncherApplication.Add (CreateCSJGromore ()); + } - - var elementlauncherManifest = launcherManifest.Element("manifest"); - var elementlauncherApplication = elementlauncherManifest.Element("application"); - //增加穿山甲配置 - elementlauncherApplication.Add (CreateCSJGromore ()); - // Save the updated manifest file. - manifest.Save(manifestPath); + manifest.Save (manifestPath); launcherManifest.Save (launcherManifestPath); } /// /// 增加微信开放平台的适配 /// - public static XElement CreateActivityXML() + public static XElement CreateActivityXML () { - - var metaData = new XElement("activity"); - metaData.Add(new XAttribute(AndroidNamespace + "name", ".wxapi.WXEntryActivity")); - metaData.Add(new XAttribute(AndroidNamespace + "label", "@string/app_name")); - metaData.Add(new XAttribute(AndroidNamespace + "theme", "@android:style/Theme.Translucent.NoTitleBar")); - metaData.Add(new XAttribute(AndroidNamespace + "exported", "true")); - metaData.Add(new XAttribute(AndroidNamespace + "taskAffinity", Application.identifier)); - metaData.Add(new XAttribute(AndroidNamespace + "launchMode", "singleTask")); + var metaData = new XElement ("activity"); + metaData.Add (new XAttribute (AndroidNamespace + "name", ".wxapi.WXEntryActivity")); + metaData.Add (new XAttribute (AndroidNamespace + "label", "@string/app_name")); + metaData.Add (new XAttribute (AndroidNamespace + "theme", "@android:style/Theme.Translucent.NoTitleBar")); + metaData.Add (new XAttribute (AndroidNamespace + "exported", "true")); + metaData.Add (new XAttribute (AndroidNamespace + "taskAffinity", Application.identifier)); + metaData.Add (new XAttribute (AndroidNamespace + "launchMode", "singleTask")); return metaData; } - - public static XElement CreateQueries() + + public static XElement CreateQueries () { - var metaData = new XElement("queries"); - var packageData = new XElement("package"); - packageData.Add(new XAttribute(AndroidNamespace + "name", "com.tencent.mm")); - metaData.Add(packageData); + var metaData = new XElement ("queries"); + var packageData = new XElement ("package"); + packageData.Add (new XAttribute (AndroidNamespace + "name", "com.tencent.mm")); + metaData.Add (packageData); return metaData; } + private static XElement GetElementByName (IEnumerable elements, string name) + { + foreach (var element in elements) + { + var attributes = element.Attributes (); + if (attributes.Any (attribute => attribute.Name.Namespace.Equals (AndroidNamespace) + && attribute.Name.LocalName.Equals ("name") + && attribute.Value.Equals (name))) + { + return element; + } + } + + return null; + } + public static XElement CreateCSJGromore () { @@ -115,16 +154,16 @@ namespace Topon_Adapter.Editor * */ - var providerData = new XElement("provider"); + var providerData = new XElement ("provider"); providerData.Add (new XAttribute (AndroidNamespace + "name" , "com.bytedance.sdk.openadsdk.TTFileProvider")); providerData.Add (new XAttribute (AndroidNamespace + "authorities" , "${applicationId}.TTFileProvider")); providerData.Add (new XAttribute (AndroidNamespace + "exported" , "false")); providerData.Add (new XAttribute (AndroidNamespace + "grantUriPermissions" , "true")); - providerData.Add (new XAttribute (ToolsNamespace + "replace" , "android:authorities")); - var metaData = new XElement("meta-data"); - metaData.Add (new XAttribute (AndroidNamespace+"name" , "android.support.FILE_PROVIDER_PATHS")); - metaData.Add (new XAttribute (AndroidNamespace+"resource" , "@xml/alex_tt_file_path")); + providerData.Add (new XAttribute (ToolsNamespace + "replace" , "android:authorities")); + var metaData = new XElement ("meta-data"); + metaData.Add (new XAttribute (AndroidNamespace + "name" , "android.support.FILE_PROVIDER_PATHS")); + metaData.Add (new XAttribute (AndroidNamespace + "resource" , "@xml/alex_tt_file_path")); providerData.Add (metaData); return providerData; } diff --git a/package.json b/package.json index b1238ee..31ec4ab 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "com.commercialization.topon", "displayName": "Commercialization.topon", "description": "基于topon的广告sdk封装,依赖基础商业化模块", - "version": "1.0.16", + "version": "1.0.17", "unity": "2021.1", "license": "MIT", "repository": {