4 Commits

Author SHA1 Message Date
caf057bb97 1.0.19 2023-11-19 16:21:55 +08:00
41f75ad3d0 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	Assets/package.json
2023-11-19 16:20:53 +08:00
c07a7e5f4a 1.0.18 2023-11-19 16:20:19 +08:00
120d3315fc 1.0.17 2023-11-07 18:54:01 +08:00
3 changed files with 82 additions and 43 deletions

View File

@@ -22,7 +22,7 @@ MonoBehaviour:
PluginFileName: AnyThinkCore.unitypackage PluginFileName: AnyThinkCore.unitypackage
PluginFilePaths: [] PluginFilePaths: []
LatestVersions: LatestVersions:
Unity: 2.0.1 Unity: 2.0.2
Android: 6.2.72 Android: 6.2.72
Ios: 6.2.68 Ios: 6.2.68
CurrentVersions: CurrentVersions:

View File

@@ -1,5 +1,7 @@
#if UNITY_ANDROID #if UNITY_ANDROID
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Xml.Linq; using System.Xml.Linq;
using UnityEngine; using UnityEngine;
using UnityEditor; using UnityEditor;
@@ -13,17 +15,17 @@ namespace Topon_Adapter.Editor
private static readonly XNamespace ToolsNamespace = "http://schemas.android.com/tools"; 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 #if UNITY_2019_3_OR_NEWER
var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml"); var manifestPath = Path.Combine (path, "src/main/AndroidManifest.xml");
var launcherManifestPath = Path.Combine(path, "../launcher/src/main/AndroidManifest.xml"); var launcherManifestPath = Path.Combine (path, "../launcher/src/main/AndroidManifest.xml");
#else #else
var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml"); var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml");
#endif #endif
@@ -32,72 +34,109 @@ namespace Topon_Adapter.Editor
XDocument launcherManifest; XDocument launcherManifest;
try try
{ {
manifest = XDocument.Load(manifestPath); manifest = XDocument.Load (manifestPath);
launcherManifest = XDocument.Load (launcherManifestPath); launcherManifest = XDocument.Load (launcherManifestPath);
} }
#pragma warning disable 0168 #pragma warning disable 0168
catch (IOException exception) catch (IOException exception)
#pragma warning restore 0168 #pragma warning restore 0168
{ {
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is missing."); ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is missing.");
return; return;
} }
// Get the `manifest` element. // Get the `manifest` element.
var elementManifest = manifest.Element("manifest"); var elementManifest = manifest.Element ("manifest");
if (elementManifest == null) if (elementManifest == null)
{ {
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid."); ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is invalid.");
return; return;
} }
var elementApplication = elementManifest.Element("application"); var elementApplication = elementManifest.Element ("application");
if (elementApplication == null) if (elementApplication == null)
{ {
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid."); ATLog.log ("[BuildAndroidProcess] AndroidManifest.xml is invalid.");
return; return;
} }
var queries = CreateQueries(); var queries = CreateQueries ();
elementManifest.Add(queries);
elementApplication.Add(CreateActivityXML()); 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 elementlauncherManifest = launcherManifest.Element ("manifest");
var elementlauncherApplication = elementlauncherManifest.Element("application"); var elementlauncherApplication = elementlauncherManifest.Element ("application");
//增加穿山甲配置
elementlauncherApplication.Add (CreateCSJGromore ()); 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 ());
}
// Save the updated manifest file. // Save the updated manifest file.
manifest.Save(manifestPath); manifest.Save (manifestPath);
launcherManifest.Save (launcherManifestPath); launcherManifest.Save (launcherManifestPath);
} }
/// <summary> /// <summary>
/// 增加微信开放平台的适配 /// 增加微信开放平台的适配
/// </summary> /// </summary>
public static XElement CreateActivityXML() public static XElement CreateActivityXML ()
{ {
var metaData = new XElement ("activity");
var metaData = new XElement("activity"); metaData.Add (new XAttribute (AndroidNamespace + "name", ".wxapi.WXEntryActivity"));
metaData.Add(new XAttribute(AndroidNamespace + "name", ".wxapi.WXEntryActivity")); metaData.Add (new XAttribute (AndroidNamespace + "label", "@string/app_name"));
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 + "theme", "@android:style/Theme.Translucent.NoTitleBar")); metaData.Add (new XAttribute (AndroidNamespace + "exported", "true"));
metaData.Add(new XAttribute(AndroidNamespace + "exported", "true")); metaData.Add (new XAttribute (AndroidNamespace + "taskAffinity", Application.identifier));
metaData.Add(new XAttribute(AndroidNamespace + "taskAffinity", Application.identifier)); metaData.Add (new XAttribute (AndroidNamespace + "launchMode", "singleTask"));
metaData.Add(new XAttribute(AndroidNamespace + "launchMode", "singleTask"));
return metaData; return metaData;
} }
public static XElement CreateQueries() public static XElement CreateQueries ()
{ {
var metaData = new XElement("queries"); var metaData = new XElement ("queries");
var packageData = new XElement("package"); var packageData = new XElement ("package");
packageData.Add(new XAttribute(AndroidNamespace + "name", "com.tencent.mm")); packageData.Add (new XAttribute (AndroidNamespace + "name", "com.tencent.mm"));
metaData.Add(packageData); metaData.Add (packageData);
return metaData; return metaData;
} }
private static XElement GetElementByName (IEnumerable<XElement> 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 () public static XElement CreateCSJGromore ()
{ {
@@ -115,16 +154,16 @@ namespace Topon_Adapter.Editor
</provider> </provider>
* *
*/ */
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 + "name" , "com.bytedance.sdk.openadsdk.TTFileProvider"));
providerData.Add (new XAttribute (AndroidNamespace + "authorities" , "${applicationId}.TTFileProvider")); providerData.Add (new XAttribute (AndroidNamespace + "authorities" , "${applicationId}.TTFileProvider"));
providerData.Add (new XAttribute (AndroidNamespace + "exported" , "false")); providerData.Add (new XAttribute (AndroidNamespace + "exported" , "false"));
providerData.Add (new XAttribute (AndroidNamespace + "grantUriPermissions" , "true")); providerData.Add (new XAttribute (AndroidNamespace + "grantUriPermissions" , "true"));
providerData.Add (new XAttribute (ToolsNamespace + "replace" , "android:authorities")); providerData.Add (new XAttribute (ToolsNamespace + "replace" , "android:authorities"));
var metaData = new XElement("meta-data"); var metaData = new XElement ("meta-data");
metaData.Add (new XAttribute (AndroidNamespace+"name" , "android.support.FILE_PROVIDER_PATHS")); metaData.Add (new XAttribute (AndroidNamespace + "name" , "android.support.FILE_PROVIDER_PATHS"));
metaData.Add (new XAttribute (AndroidNamespace+"resource" , "@xml/alex_tt_file_path")); metaData.Add (new XAttribute (AndroidNamespace + "resource" , "@xml/alex_tt_file_path"));
providerData.Add (metaData); providerData.Add (metaData);
return providerData; return providerData;
} }

View File

@@ -2,7 +2,7 @@
"name": "com.commercialization.topon", "name": "com.commercialization.topon",
"displayName": "Commercialization.topon", "displayName": "Commercialization.topon",
"description": "基于topon的广告sdk封装依赖基础商业化模块", "description": "基于topon的广告sdk封装依赖基础商业化模块",
"version": "1.0.16", "version": "1.0.19",
"unity": "2021.1", "unity": "2021.1",
"license": "MIT", "license": "MIT",
"repository": { "repository": {