2 Commits

Author SHA1 Message Date
120d3315fc 1.0.17 2023-11-07 18:54:01 +08:00
5a24a3292c 1.0.16 2023-10-19 18:00:10 +08:00
16 changed files with 158 additions and 137 deletions

View File

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

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 90dd56ba21d3f46ce8799318c4c697f6
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:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 1be98f3eccf7b457983f9ffec542cf50
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:

View File

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

View File

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

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><dependencies>
<iosPods>
<iosPod name="AnyThinkiOS/AnyThinkTTAdapter" version="6.2.68" />
</iosPods>
</dependencies>

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5d946ae84d7ee45dea6ccc6a9175ea8f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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:

View File

@@ -8,6 +8,9 @@
maven {
url "https://artifact.bytedance.com/repository/pangle" // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:6
}
maven {
url "https://jfrog.anythinktech.com/artifactory/debugger" // Assets/Topon_Adapter/Editor/ToponTestDependencies.xml:6
}
mavenLocal()
mavenCentral()
}
@@ -20,13 +23,9 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
implementation 'com.android.support:appcompat-v7:28.0.0' // Assets/AnyThinkAds/Plugins/Android/China/Editor/Dependencies.xml:3
implementation 'com.android.support:design:28.0.0' // Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/Editor/Dependencies.xml:3
implementation 'com.github.bumptech.glide:glide:4.9.0' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:6
implementation 'com.anythink.sdk:debugger-ui:1.0.0' // Assets/Topon_Adapter/Editor/ToponTestDependencies.xml:8
implementation 'com.pangle.cn:mediation-sdk:5.6.1.6' // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:8
implementation 'com.squareup.okhttp3:okhttp:3.12.1' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:5
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0' // Assets/Topon_Adapter/Editor/WXDependencies.xml:3
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:4
implementation 'io.reactivex.rxjava2:rxjava:2.0.1' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:3
// Android Resolver Dependencies End
**DEPS**}

View File

@@ -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,80 +15,159 @@ 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 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);
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;
}
elementManifest.Add(CreateQueries());
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 ());
}
// Save the updated manifest file.
manifest.Save(manifestPath);
manifest.Save (manifestPath);
launcherManifest.Save (launcherManifestPath);
}
/// <summary>
/// 增加微信开放平台的适配
/// </summary>
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<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 ()
{
// 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/alex_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/alex_tt_file_path"));
providerData.Add (metaData);
return providerData;
}
public int callbackOrder { get; }
}
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<repositories>
<repository>https://jfrog.anythinktech.com/artifactory/debugger</repository>
</repositories>
<androidPackage spec="com.anythink.sdk:debugger-ui:1.0.0"/>
</androidPackages>
</dependencies>

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a130901ed98e40898c3917a08e126996
timeCreated: 1697702311

View File

@@ -1,6 +1,7 @@
using System;
using AnyThinkAds.Api;
using Runtime.ADAggregator;
using UnityEngine;
public class ToponAdController : IAdController
{
@@ -14,8 +15,13 @@ public class ToponAdController : IAdController
_adConfig = adConfig;
// ATSdkUtil.
ATSDKAPI.setChannel(args[0].ToString());
ATSDKAPI.setLogDebug(args.Length > 1 && (bool)args[1]);
var isDebug = args.Length > 1 && (bool)args[1];
ATSDKAPI.setLogDebug(isDebug);
ATSDKAPI.initSDK(adConfig.Id , adConfig.Key);
if (isDebug)
{
ShowAndroidTest ();
}
}
public void SetListener(Action<bool> adMaskAction ,Action<string, string> logEventAction)
@@ -49,4 +55,25 @@ public class ToponAdController : IAdController
{
_maskAction?.Invoke(isOpen);
}
private void ShowAndroidTest ()
{
// com.anythink.debug.api.ATDebuggerUITest.showDebuggerUI(this);
#if UNITY_EDITOR
return;
#elif UNITY_ANDROID
//获取Unity的Activity Class
using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
//获取对应的实例化对象,这两句都是固定写法
using (AndroidJavaObject activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity"))
{
//拿到我自己的工具类并实例化
var testUtils = new AndroidJavaClass("com.anythink.debug.api.ATDebuggerUITest");
//向工具类里的Init方法传入Unity的activity对象用于初始化工具类
testUtils.CallStatic("showDebuggerUI", activityContext);
}
}
#endif
}
}

View File

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