5 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
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 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

@@ -8,6 +8,9 @@
maven { maven {
url "https://artifact.bytedance.com/repository/pangle" // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:6 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() mavenLocal()
mavenCentral() mavenCentral()
} }
@@ -20,13 +23,9 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start // 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: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.anythink.sdk:debugger-ui:1.0.0' // Assets/Topon_Adapter/Editor/ToponTestDependencies.xml:8
implementation 'com.github.bumptech.glide:glide:4.9.0' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:6
implementation 'com.pangle.cn:mediation-sdk:5.6.1.6' // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.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 '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 // Android Resolver Dependencies End
**DEPS**} **DEPS**}

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,80 +15,159 @@ 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");
#else #else
var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml"); var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml");
#endif #endif
// var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml"); // var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml");
XDocument manifest; XDocument manifest;
XDocument launcherManifest;
try try
{ {
manifest = XDocument.Load(manifestPath); manifest = XDocument.Load (manifestPath);
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;
} }
elementManifest.Add(CreateQueries()); var queries = CreateQueries ();
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 ());
}
// Save the updated manifest file. // Save the updated manifest file.
manifest.Save(manifestPath); manifest.Save (manifestPath);
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 ()
{
// 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; } 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 System;
using AnyThinkAds.Api; using AnyThinkAds.Api;
using Runtime.ADAggregator; using Runtime.ADAggregator;
using UnityEngine;
public class ToponAdController : IAdController public class ToponAdController : IAdController
{ {
@@ -14,8 +15,13 @@ public class ToponAdController : IAdController
_adConfig = adConfig; _adConfig = adConfig;
// ATSdkUtil. // ATSdkUtil.
ATSDKAPI.setChannel(args[0].ToString()); 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); ATSDKAPI.initSDK(adConfig.Id , adConfig.Key);
if (isDebug)
{
ShowAndroidTest ();
}
} }
public void SetListener(Action<bool> adMaskAction ,Action<string, string> logEventAction) public void SetListener(Action<bool> adMaskAction ,Action<string, string> logEventAction)
@@ -49,4 +55,25 @@ public class ToponAdController : IAdController
{ {
_maskAction?.Invoke(isOpen); _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", "name": "com.commercialization.topon",
"displayName": "Commercialization.topon", "displayName": "Commercialization.topon",
"description": "基于topon的广告sdk封装依赖基础商业化模块", "description": "基于topon的广告sdk封装依赖基础商业化模块",
"version": "1.0.15", "version": "1.0.19",
"unity": "2021.1", "unity": "2021.1",
"license": "MIT", "license": "MIT",
"repository": { "repository": {