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..e9119b5 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.18",
"unity": "2021.1",
"license": "MIT",
"repository": {