This commit is contained in:
Foldcc_Book
2023-10-12 04:08:33 +08:00
parent f8a4ac18c1
commit 38c9cabad2
12 changed files with 176 additions and 3 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ffa17b4d22a08804794a574856906799
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,94 @@
#if UNITY_ANDROID
using System.IO;
using System.Xml.Linq;
using UnityEngine;
using UnityEditor;
using UnityEditor.Android;
namespace Topon_Adapter.Editor
{
public class AD_BuildAndroidProcess : IPostGenerateGradleAndroidProject
{
private static readonly XNamespace AndroidNamespace = "http://schemas.android.com/apk/res/android";
private static readonly XNamespace ToolsNamespace = "http://schemas.android.com/tools";
public void OnPostGenerateGradleAndroidProject(string path)
{
ProcessAndroidManifest(path);
}
public static void ProcessAndroidManifest(string path)
{
#if UNITY_2019_3_OR_NEWER
var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml");
#else
var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml");
#endif
// var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml");
XDocument manifest;
try
{
manifest = XDocument.Load(manifestPath);
}
#pragma warning disable 0168
catch (IOException exception)
#pragma warning restore 0168
{
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is missing.");
return;
}
// Get the `manifest` element.
var elementManifest = manifest.Element("manifest");
if (elementManifest == null)
{
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid.");
return;
}
var elementApplication = elementManifest.Element("application");
if (elementApplication == null)
{
ATLog.log("[BuildAndroidProcess] AndroidManifest.xml is invalid.");
return;
}
elementManifest.Add(CreateQueries());
elementApplication.Add(CreateActivityXML());
// Save the updated manifest file.
manifest.Save(manifestPath);
}
/// <summary>
/// 增加微信开放平台的适配
/// </summary>
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"));
return metaData;
}
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);
return metaData;
}
public int callbackOrder { get; }
}
}
#endif

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f093a7f66c4f4560a3d06bcf236bc89a
timeCreated: 1697048746

View File

@@ -0,0 +1,19 @@
{
"name": "Topon_Adapter.Editor",
"rootNamespace": "",
"references": [
"GUID:8a3d1447e0a3bdf4fa07035516da8b62",
"GUID:483a01338fa974b4498cd71261d6e8b9"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4ea29d77d0952884eac16339c279a985
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,5 @@
<dependencies>
<androidPackages>
<androidPackage spec="com.tencent.mm.opensdk:wechat-sdk-android:6.8.0"/>
</androidPackages>
</dependencies>

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ee2de7a1fe734e3599d92016611fc247
timeCreated: 1697050926