You've already forked Commercialization.topon
1.0.17
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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 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.
|
// 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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.17",
|
||||||
"unity": "2021.1",
|
"unity": "2021.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
Reference in New Issue
Block a user