You've already forked Commercialization.topon
update
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1eb5504d21825439e88a559575ad04cc
|
||||
guid: 18ec4e5b1e69a419e8b51660fd87e10b
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88a6d95f1bee14bad81b3aaea2e87395
|
||||
guid: 0fc816117918a447bbf4042bd0eaa0e8
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 240f011f233064c73875ff52b3a38da7
|
||||
guid: 40ffcabb87095443db42156bfb4b5c50
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
{"name":"gdt","version":"4.603.1473","country":1,"path":"Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/../../..//AnyThinkAds\\Plugins/Android/China/mediation/gdt"}
|
||||
{"name":"gdt","version":"4.602.1472","country":1,"path":"Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/../../..//AnyThinkAds\\Plugins/Android/China/mediation/gdt"}
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2fc916f3a90024b6d9eb483dc74f6934
|
||||
guid: 21f56453deec64c93ab4f2de70416598
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77128d02ff80548a78ea500c7a18397b
|
||||
guid: 65ba4f4c0c9574f5694e8e3789af3a20
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
{"curCountry":1,"china":{"android_version":"6.4.08","ios_version":"","androidXSetting":1,"country":1,"android_admob_app_id":"","ios_admob_app_id":""},"nonchina":{"android_version":"","ios_version":"","androidXSetting":0,"country":2,"android_admob_app_id":"","ios_admob_app_id":""}}
|
||||
{"curCountry":1,"china":{"android_version":"6.4.12","ios_version":"","androidXSetting":1,"country":1,"android_admob_app_id":"","ios_admob_app_id":""},"nonchina":{"android_version":"","ios_version":"","androidXSetting":0,"country":2,"android_admob_app_id":"","ios_admob_app_id":""}}
|
||||
@@ -1,33 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f8ba47e7e6684db4fbba23e147b0e34f
|
||||
folderAsset: yes
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.alex.gromore.res">
|
||||
|
||||
</manifest>
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5cdaa0a8dde8495782a285555245f421
|
||||
timeCreated: 1695622122
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88b0cd13e8e208a4bab324fdd90b4067
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3730fc3181b36f54ea5593b0609aa846
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
<paths>
|
||||
<cache-path
|
||||
name="tt_internal_cache_download"
|
||||
path="Download" />
|
||||
<external-files-path
|
||||
name="tt_external_files_download"
|
||||
path="Download" />
|
||||
<external-path
|
||||
name="tt_external_root"
|
||||
path="." />
|
||||
<external-path
|
||||
name="tt_external_download"
|
||||
path="Download" />
|
||||
<files-path
|
||||
name="tt_internal_file_download"
|
||||
path="Download" />
|
||||
</paths>
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf2aafbf181354d4a8c0616ad17df2d4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
<paths>
|
||||
<cache-path
|
||||
name="tt_internal_cache_download"
|
||||
path="Download" />
|
||||
<external-files-path
|
||||
name="tt_external_files_download"
|
||||
path="Download" />
|
||||
<external-path
|
||||
name="tt_external_root"
|
||||
path="." />
|
||||
<external-path
|
||||
name="tt_external_download"
|
||||
path="Download" />
|
||||
<files-path
|
||||
name="tt_internal_file_download"
|
||||
path="Download" />
|
||||
</paths>
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f975c7fd05f6e684da8f4bec52c2c75a
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -17,7 +17,7 @@ namespace Topon_Adapter.Editor
|
||||
|
||||
public void OnPostGenerateGradleAndroidProject (string path)
|
||||
{
|
||||
ProcessAndroidManifest (path);
|
||||
// ProcessAndroidManifest (path);
|
||||
}
|
||||
|
||||
|
||||
|
||||
232
Assets/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs~
Normal file
232
Assets/Topon_Adapter/Editor/AD_BuildAndroidProcess.cs~
Normal file
@@ -0,0 +1,232 @@
|
||||
#if UNITY_ANDROID
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
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");
|
||||
var launcherManifestPath = Path.Combine (path, "../launcher/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;
|
||||
XDocument launcherManifest;
|
||||
try
|
||||
{
|
||||
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.");
|
||||
return;
|
||||
}
|
||||
|
||||
#if UNITY_2019_3_OR_NEWER
|
||||
var resXmlPath = Path.Combine(path, "src/main/res/xml");
|
||||
#else
|
||||
var resXmlPath = Path.Combine(path, "unityLibrary/src/main/res/xml");
|
||||
#endif
|
||||
if (!Directory.Exists(resXmlPath))
|
||||
{
|
||||
Directory.CreateDirectory(resXmlPath);
|
||||
}
|
||||
// var fromScriptableObject = MonoScript.FromScriptableObject(this);
|
||||
var xmlPath = GetScriptsPath("AD_BuildAndroidProcess");
|
||||
saveFile($"{xmlPath}/alex_tt_file_path.xml", resXmlPath);
|
||||
saveFile($"{xmlPath}/anythink_bk_tt_file_path.xml", resXmlPath);
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
ToSingleTop (elementManifest);
|
||||
|
||||
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 launcherElements = elementlauncherApplication.Descendants ().Where (element => element.Name.LocalName.Equals ("provider"));
|
||||
XElement launcherElement = GetElementByName (launcherElements, "com.bytedance.sdk.openadsdk.TTFileProvider");
|
||||
if (launcherElement == null)
|
||||
{
|
||||
//增加穿山甲配置
|
||||
// elementlauncherApplication.Add (CreateCSJGromore ());
|
||||
}
|
||||
|
||||
var elementMainManifest = manifest.Element ("manifest");
|
||||
var elementMainApplication = elementMainManifest.Element ("application");
|
||||
|
||||
var mainElements = elementMainApplication.Descendants ().Where (element => element.Name.LocalName.Equals ("provider"));
|
||||
XElement mainElement = GetElementByName (mainElements, "com.bytedance.sdk.openadsdk.TTFileProvider");
|
||||
if (mainElement == null)
|
||||
{
|
||||
//增加穿山甲配置
|
||||
// elementMainApplication.Add (CreateCSJGromore ());
|
||||
}
|
||||
|
||||
// Save the updated manifest file.
|
||||
manifest.Save (manifestPath);
|
||||
launcherManifest.Save (launcherManifestPath);
|
||||
}
|
||||
|
||||
public static void saveFile(string filePathName , string toFilesPath)
|
||||
{
|
||||
FileInfo file = new FileInfo(filePathName);
|
||||
string newFileName = file.Name;
|
||||
file.CopyTo(toFilesPath + "/" + newFileName, true);
|
||||
}
|
||||
|
||||
/// <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", "singleTop"));
|
||||
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;
|
||||
}
|
||||
|
||||
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 string GetScriptsPath (string scriptName)
|
||||
{
|
||||
string[] path = UnityEditor.AssetDatabase.FindAssets(scriptName);
|
||||
if(path.Length >1)
|
||||
{
|
||||
// Debug.LogError("有同名文件"+_scriptName+"获取路径失败");
|
||||
return null;
|
||||
}
|
||||
//将字符串中得脚本名字和后缀统统去除掉
|
||||
string _path = AssetDatabase.GUIDToAssetPath(path[0]).Replace((@"/" +scriptName +".cs"),"");
|
||||
return _path;
|
||||
}
|
||||
|
||||
public static XElement CreateCSJGromore ()
|
||||
{
|
||||
// ReSharper disable once InvalidXmlDocComment
|
||||
/**
|
||||
<provider
|
||||
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
|
||||
android:authorities="${applicationId}.TTFileProvider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true"
|
||||
tools:replace="android:authorities">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/anythink_bk_tt_file_path"/>
|
||||
</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/anythink_bk_tt_file_path"));
|
||||
providerData.Add (metaData);
|
||||
return providerData;
|
||||
}
|
||||
|
||||
public static void ToSingleTop (XElement manifest)
|
||||
{
|
||||
|
||||
var elements = manifest.Descendants ().Where (element => element.Name.LocalName.Equals ("activity"));
|
||||
// 如果这个activity已经有了 android:launchMode="singleTask",则不再添加
|
||||
XElement elementByName = GetElementByName (elements , "com.unity3d.player.UnityPlayerActivity");
|
||||
//此处将 android:launchMode="singleTask" 改为 android:launchMode="singleTop"
|
||||
// elementByName.Add (new XAttribute (AndroidNamespace + "launchMode", "singleTop"));
|
||||
elementByName.Attribute ( AndroidNamespace + "launchMode")?.SetValue ("singleTop");
|
||||
}
|
||||
|
||||
public int callbackOrder { get; }
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user