diff --git a/Assets/AnyThinkAds.meta b/Assets/AnyThinkAds.meta index 02474c4..e2d8c6a 100644 --- a/Assets/AnyThinkAds.meta +++ b/Assets/AnyThinkAds.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 687c8129e7770fe47aa2bdceaab14b6b +guid: 0b1601c425ae3b24e9764462dbbe5359 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/AnyThinkAds.asmdef b/Assets/AnyThinkAds/AnyThinkAds.asmdef deleted file mode 100644 index 25ba7fe..0000000 --- a/Assets/AnyThinkAds/AnyThinkAds.asmdef +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "AnyThinkAds" -} diff --git a/Assets/AnyThinkAds/Api.meta b/Assets/AnyThinkAds/Api.meta index 7b2fa3d..594fec5 100644 --- a/Assets/AnyThinkAds/Api.meta +++ b/Assets/AnyThinkAds/Api.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 91a7a1e184c2641f79c95f363b8872d2 +guid: ae70ff20f73a04e91b4e6bb12d7adc69 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Api/ATAdEventArgs.cs b/Assets/AnyThinkAds/Api/ATAdEventArgs.cs index 795744a..95e6d08 100644 --- a/Assets/AnyThinkAds/Api/ATAdEventArgs.cs +++ b/Assets/AnyThinkAds/Api/ATAdEventArgs.cs @@ -10,18 +10,23 @@ namespace AnyThinkAds.Api { public String placementId { get; } public ATCallbackInfo callbackInfo { get; } + public bool isTimeout { get; } - public ATAdEventArgs(String id) - { - placementId = id; - callbackInfo = new ATCallbackInfo(""); - } + public bool isDeeplinkSucceed { get; } - public ATAdEventArgs(String id, String callbackJson) + public ATAdEventArgs(string id, string callbackJson = "", bool timeout = false, bool isDeeplinkSucceess = false) { placementId = id; callbackInfo = new ATCallbackInfo(callbackJson); + isTimeout = timeout; + isDeeplinkSucceed = isDeeplinkSucceess; } + + // public ATAdEventArgs(String id, String callbackJson) + // { + // placementId = id; + // callbackInfo = new ATCallbackInfo(callbackJson); + // } } public class ATAdErrorEventArgs : ATAdEventArgs @@ -191,4 +196,23 @@ namespace AnyThinkAds.Api event EventHandler onPlayAgainReward; } + + public interface IATSplashEvents : IHCommonEvents + { + // called when the ad is shown + event EventHandler onAdShowEvent; + + // called if the ad has failed to be shown + event EventHandler onAdShowFailureEvent; + + // called when the ad is closed + event EventHandler onAdCloseEvent; + + // called when an user has clicked an ad + event EventHandler onAdClickEvent; + + event EventHandler onAdLoadTimeoutEvent; + event EventHandler onDeeplinkEvent; + event EventHandler onDownloadConfirmEvent; + } } \ No newline at end of file diff --git a/Assets/AnyThinkAds/Api/ATCallbackInfo.cs b/Assets/AnyThinkAds/Api/ATCallbackInfo.cs index d1aa6c3..71b05a0 100644 --- a/Assets/AnyThinkAds/Api/ATCallbackInfo.cs +++ b/Assets/AnyThinkAds/Api/ATCallbackInfo.cs @@ -34,6 +34,10 @@ namespace AnyThinkAds.Api public readonly string sub_channel; public readonly string channel; public readonly Dictionary custom_rule; + + public readonly Dictionary ext_info; + public readonly string user_load_extra_data; + public readonly int abtest_id; public readonly string reward_custom_data; @@ -72,15 +76,20 @@ namespace AnyThinkAds.Api network_placement_id = jsonData.ContainsKey("network_placement_id") ? (string)jsonData["network_placement_id"] : ""; ecpm_level = int.Parse(jsonData.ContainsKey("ecpm_level") ? jsonData["ecpm_level"].ToString() : "0"); + abtest_id = int.Parse(jsonData.ContainsKey("abtest_id") ? jsonData["abtest_id"].ToString() : "0"); segment_id = int.Parse(jsonData.ContainsKey("segment_id") ? jsonData["segment_id"].ToString() : "0"); scenario_id = jsonData.ContainsKey("scenario_id") ? (string)jsonData["scenario_id"] : "";// RewardVideo & Interstitial - + if (jsonData.ContainsKey("user_load_extra_data")) { + user_load_extra_data = jsonData.ContainsKey("user_load_extra_data") ? (string)jsonData["user_load_extra_data"] : ""; + } + scenario_reward_name = jsonData.ContainsKey("scenario_reward_name") ? (string)jsonData["scenario_reward_name"] : ""; scenario_reward_number = int.Parse(jsonData.ContainsKey("scenario_reward_number") ? jsonData["scenario_reward_number"].ToString() : "0"); channel = jsonData.ContainsKey("channel") ? (string)jsonData["channel"] : ""; sub_channel = jsonData.ContainsKey("sub_channel") ? (string)jsonData["sub_channel"] : ""; custom_rule = jsonData.ContainsKey("custom_rule") ? JsonMapper.ToObject>(jsonData["custom_rule"].ToJson()) : null; + ext_info = jsonData.ContainsKey("ext_info") ? JsonMapper.ToObject>(jsonData["ext_info"].ToJson()) : null; reward_custom_data = jsonData.ContainsKey("reward_custom_data") ? (string)jsonData["reward_custom_data"] : ""; @@ -130,12 +139,15 @@ namespace AnyThinkAds.Api dataDictionary.Add("ecpm_level", ecpm_level); dataDictionary.Add("segment_id", segment_id); dataDictionary.Add("scenario_id", scenario_id); + dataDictionary.Add("user_load_extra_data", user_load_extra_data); dataDictionary.Add("scenario_reward_name", scenario_reward_name); dataDictionary.Add("scenario_reward_number", scenario_reward_number); + dataDictionary.Add("abtest_id", abtest_id); dataDictionary.Add("sub_channel", sub_channel); dataDictionary.Add("channel", channel); dataDictionary.Add("custom_rule", custom_rule); + dataDictionary.Add("ext_info", ext_info); dataDictionary.Add("reward_custom_data", reward_custom_data); return dataDictionary; diff --git a/Assets/AnyThinkAds/Api/ATNativeAdView.cs b/Assets/AnyThinkAds/Api/ATNativeAdView.cs index 3fb4709..1cbd001 100644 --- a/Assets/AnyThinkAds/Api/ATNativeAdView.cs +++ b/Assets/AnyThinkAds/Api/ATNativeAdView.cs @@ -22,6 +22,7 @@ namespace AnyThinkAds.Api private string adLogoKey = "adLogo"; private string ctaButtonKey = "cta"; private string dislikeButtonKey = "dislike"; + private string elementsKey = "elements"; public string toJSON() { @@ -85,6 +86,14 @@ namespace AnyThinkAds.Api builder.Append("\"").Append(dislikeButtonKey).Append("\""); builder.Append(":"); builder.Append(JsonUtility.ToJson(config.dislikeButtonProperty)); + builder.Append(","); + } + + if (config.elementsProperty != null) + { + builder.Append("\"").Append(elementsKey).Append("\""); + builder.Append(":"); + builder.Append(JsonUtility.ToJson(config.elementsProperty)); } string temp = builder.ToString(); diff --git a/Assets/AnyThinkAds/Api/ATNativeConfig.cs b/Assets/AnyThinkAds/Api/ATNativeConfig.cs index 1ec06de..3b30725 100644 --- a/Assets/AnyThinkAds/Api/ATNativeConfig.cs +++ b/Assets/AnyThinkAds/Api/ATNativeConfig.cs @@ -14,5 +14,6 @@ namespace AnyThinkAds.Api public ATNativeItemProperty adLogoProperty; public ATNativeItemProperty ctaButtonProperty; public ATNativeItemProperty dislikeButtonProperty; + public ATNativeItemProperty elementsProperty; } } diff --git a/Assets/AnyThinkAds/Api/ATSDKAPI.cs b/Assets/AnyThinkAds/Api/ATSDKAPI.cs index 062e117..33989f6 100644 --- a/Assets/AnyThinkAds/Api/ATSDKAPI.cs +++ b/Assets/AnyThinkAds/Api/ATSDKAPI.cs @@ -128,6 +128,7 @@ namespace AnyThinkAds.Api public static void setLogDebug(bool isDebug) { client.setLogDebug(isDebug); + ATLogger.IsDebug = isDebug; } public static void addNetworkGDPRInfo(int networkType, Dictionary dictionary) diff --git a/Assets/AnyThinkAds/Api/ATSplashAd.cs b/Assets/AnyThinkAds/Api/ATSplashAd.cs new file mode 100644 index 0000000..cc78f87 --- /dev/null +++ b/Assets/AnyThinkAds/Api/ATSplashAd.cs @@ -0,0 +1,73 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Reflection; +using System; + +using AnyThinkAds.Common; +using AnyThinkAds.ThirdParty.LitJson; + +namespace AnyThinkAds.Api +{ + public class ATSplashAdLocalExtra + { + //Only for GDT (true: open download dialog, false: download directly) + public static readonly string kATSplashAdClickConfirmStatus = "ad_click_confirm_status"; + } + public class ATSplashAd + { + private static readonly ATSplashAd instance = new ATSplashAd(); + public IATSplashAdClient client; + + private ATSplashAd() + { + client = AnyThinkAds.ATAdsClientFactory.BuildSplashAdClient(); + } + + public static ATSplashAd Instance + { + get + { + return instance; + } + } + + public void loadSplashAd(string placementId, Dictionary pairs, int fetchAdTimeout = 5000, string defaultAdSourceConfig = "") + { + #if UNITY_ANDROID + client.loadSplashAd(placementId, fetchAdTimeout, defaultAdSourceConfig, JsonMapper.ToJson(pairs)); + #elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE + //TODO iOS的开屏加载 + pairs.Add("tolerate_timeout", fetchAdTimeout); + pairs.Add("default_adSource_config", defaultAdSourceConfig); + + client.loadSplashAd(placementId, fetchAdTimeout, defaultAdSourceConfig, JsonMapper.ToJson(pairs)); + #endif + } + + public void showSplashAd(string placementId, Dictionary pairs) + { + client.showSplashAd(placementId, JsonMapper.ToJson(pairs)); + } + + public bool hasSplashAdReady(string placementId) + { + return client.hasSplashAdReady(placementId); + } + + public string checkAdStatus(string placementId) + { + return client.checkAdStatus(placementId); + } + + public string getValidAdCaches(string placementId) + { + return client.getValidAdCaches(placementId); + } + + public void entryScenarioWithPlacementID(string placementId, string scenarioID) + { + client.entryScenarioWithPlacementID(placementId, scenarioID); + } + } +} diff --git a/Assets/AnyThinkPlugin/Script/ATJson.cs.meta b/Assets/AnyThinkAds/Api/ATSplashAd.cs.meta similarity index 83% rename from Assets/AnyThinkPlugin/Script/ATJson.cs.meta rename to Assets/AnyThinkAds/Api/ATSplashAd.cs.meta index d51edca..aac6d85 100644 --- a/Assets/AnyThinkPlugin/Script/ATJson.cs.meta +++ b/Assets/AnyThinkAds/Api/ATSplashAd.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fa8c0cec5bff04aeca5dc28fe21ffc89 +guid: 5989e268b2acc4d0dafdbe2ddbf0dd4b MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Api/ATSplashAdListener.cs b/Assets/AnyThinkAds/Api/ATSplashAdListener.cs new file mode 100644 index 0000000..8a8bab5 --- /dev/null +++ b/Assets/AnyThinkAds/Api/ATSplashAdListener.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +///summary +///(注意:对于Android来说,所有回调方法均不在Unity的主线程) +///sumary +namespace AnyThinkAds.Api +{ + public interface ATSplashAdListener + { + void onSplashAdLoad(string unitId, bool isTimeout); + + void onSplashAdLoadTimeOut(string unitId); + + void onSplashAdLoadFailed(string unitId, string code, string msg); + + void onSplashAdShow(string unitId, ATCallbackInfo callbackInfo); + + void onSplashAdClick(string unitId, ATCallbackInfo callbackInfo); + + void onSplashAdDismiss(string unitId, ATCallbackInfo callbackInfo); + + void onSplashAdDeeplinkCallback(string unitId, ATCallbackInfo callbackInfo, bool isSuccess); + + void onSplashAdDownloadConfirm(string unitId, ATCallbackInfo callbackInfo); + + void startLoadingADSource(string placementId, ATCallbackInfo callbackInfo); + + + void finishLoadingADSource(string placementId, ATCallbackInfo callbackInfo); + + void failToLoadADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message); + + void startBiddingADSource(string placementId, ATCallbackInfo callbackInfo); + + void finishBiddingADSource(string placementId, ATCallbackInfo callbackInfo); + + void failBiddingADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message); + } +} diff --git a/Assets/AnyThinkPlugin/Script/ATProviderInfo.cs.meta b/Assets/AnyThinkAds/Api/ATSplashAdListener.cs.meta similarity index 83% rename from Assets/AnyThinkPlugin/Script/ATProviderInfo.cs.meta rename to Assets/AnyThinkAds/Api/ATSplashAdListener.cs.meta index caa8a9b..076e1ea 100644 --- a/Assets/AnyThinkPlugin/Script/ATProviderInfo.cs.meta +++ b/Assets/AnyThinkAds/Api/ATSplashAdListener.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1123279c1b9244e11aaf04a78f2550b4 +guid: 10be2707423e74e678bcee7dff04f3d7 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Common.meta b/Assets/AnyThinkAds/Common.meta index 1c8d203..7947d9f 100644 --- a/Assets/AnyThinkAds/Common.meta +++ b/Assets/AnyThinkAds/Common.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1e8456848ebbf4b988a66e831999e0b7 +guid: 9ded34532e9f04a199738e82a8f7ca89 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Common/ATLogger.cs b/Assets/AnyThinkAds/Common/ATLogger.cs new file mode 100644 index 0000000..39cfdad --- /dev/null +++ b/Assets/AnyThinkAds/Common/ATLogger.cs @@ -0,0 +1,95 @@ +using System; +using UnityEngine; + +namespace AnyThinkAds.Common +{ + public class ATLogger + { + private static bool isDebug = false; + public static bool IsDebug + { + get { + return isDebug; + } + set { + isDebug = value; + } + } + + // public static void Log(string msg) + // { + // Log(msg, null); + // } + + // public static void Log(string format, object obj) + // { + // Log(format, obj, null); + // } + + public static void Log(string format, object obj1 = null, object obj2 = null) + { + if (!isDebug) { + return; + } + try { + if (obj1 == null && obj2 == null) + { + Debug.Log(format); + } + else if (obj1 != null && obj2 == null) + { + Debug.Log(String.Format(format, obj1)); + } + else if (obj1 == null && obj2 != null) + { + Debug.Log(String.Format(format, obj2)); + } + else { + Debug.Log(String.Format(format, obj1, obj2)); + } + } catch(Exception e) + { + Debug.LogError("Log error: " + e.Message); + } + } + + + // public static void LogError(string msg) + // { + // LogError(msg, null); + // } + + // public static void LogError(string format, object obj) + // { + // LogError(format, obj, null); + // } + + public static void LogError(string format, object obj1 = null, object obj2 = null) + { + if (!isDebug) { + return; + } + try { + if (obj1 == null && obj2 == null) + { + Debug.LogError(format); + } + else if (obj1 != null && obj2 == null) + { + Debug.LogError(String.Format(format, obj1)); + } + else if (obj1 == null && obj2 != null) + { + Debug.LogError(String.Format(format, obj2)); + } + else { + Debug.LogError(String.Format(format, obj1, obj2)); + } + } catch(Exception e) + { + Debug.LogError("Log error: " + e.Message); + } + } + + } +} diff --git a/Assets/Editor/ATDownloadManager.cs.meta b/Assets/AnyThinkAds/Common/ATLogger.cs.meta similarity index 83% rename from Assets/Editor/ATDownloadManager.cs.meta rename to Assets/AnyThinkAds/Common/ATLogger.cs.meta index 1290ea9..6ce4a6c 100644 --- a/Assets/Editor/ATDownloadManager.cs.meta +++ b/Assets/AnyThinkAds/Common/ATLogger.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4655aa99cf2c1475eb148561285c1d0e +guid: 7bfb781b1a104468281d3a841725635c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Common/IATSplashAdClient.cs b/Assets/AnyThinkAds/Common/IATSplashAdClient.cs new file mode 100644 index 0000000..b791112 --- /dev/null +++ b/Assets/AnyThinkAds/Common/IATSplashAdClient.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using AnyThinkAds.Api; + +namespace AnyThinkAds.Common +{ + public interface IATSplashAdClient : IATSplashEvents + { + // void loadSplashAd(string placementId, string mapJson); + void loadSplashAd(string placementId, int fetchAdTimeout, string defaultAdSourceConfig, string mapJson); + void setListener(ATSplashAdListener listener); + + bool hasSplashAdReady(string placementId); + + string checkAdStatus(string placementId); + + void showSplashAd(string placementId, string mapJson); + + string getValidAdCaches(string placementId); + + void entryScenarioWithPlacementID(string placementId, string scenarioID); + } +} \ No newline at end of file diff --git a/Assets/Editor/ATEditorCoroutines.cs.meta b/Assets/AnyThinkAds/Common/IATSplashAdClient.cs.meta similarity index 83% rename from Assets/Editor/ATEditorCoroutines.cs.meta rename to Assets/AnyThinkAds/Common/IATSplashAdClient.cs.meta index 672a799..3e3cb70 100644 --- a/Assets/Editor/ATEditorCoroutines.cs.meta +++ b/Assets/AnyThinkAds/Common/IATSplashAdClient.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 653ebf512c3af46698bdf323cfb74f53 +guid: 59530a01ad60b463e8097f851649c20d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Dependencies/AnyThinkPangle.unitypackage.meta b/Assets/AnyThinkAds/Dependencies/AnyThinkPangle.unitypackage.meta deleted file mode 100644 index 400fb10..0000000 --- a/Assets/AnyThinkAds/Dependencies/AnyThinkPangle.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2b40414c5bb92cc4591777b77d3d888e -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Platform.meta b/Assets/AnyThinkAds/Platform.meta index 327ddbf..5e47e15 100644 --- a/Assets/AnyThinkAds/Platform.meta +++ b/Assets/AnyThinkAds/Platform.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8cf0d327cc346430caa11f4acd1f815e +guid: bbfb513f68b154b0ebfa36897c6e4401 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/ATAdsClientFactory.cs b/Assets/AnyThinkAds/Platform/ATAdsClientFactory.cs index 16864dd..6483976 100644 --- a/Assets/AnyThinkAds/Platform/ATAdsClientFactory.cs +++ b/Assets/AnyThinkAds/Platform/ATAdsClientFactory.cs @@ -122,6 +122,21 @@ namespace AnyThinkAds return new UnityDownloadClient(); } + public static IATSplashAdClient BuildSplashAdClient() + { + #if UNITY_EDITOR + // Testing UNITY_EDITOR first because the editor also responds to the currently + // selected platform. + #elif UNITY_ANDROID + return new AnyThinkAds.Android.ATSplashAdClient(); + #elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE + //TODO iOS返回开屏client + return new AnyThinkAds.iOS.ATSplashAdClient(); + #else + #endif + return new UnitySplashClient(); + } + } class UnitySDKAPIClient:IATSDKAPIClient @@ -425,4 +440,52 @@ namespace AnyThinkAds Debug.Log("Must run on Android platform"); } } + + class UnitySplashClient : IATSplashAdClient + { + public event EventHandler onAdLoadTimeoutEvent; + public event EventHandler onDeeplinkEvent; + public event EventHandler onDownloadConfirmEvent; + public event EventHandler onAdShowEvent; + public event EventHandler onAdCloseEvent; + // called if the ad has failed to be shown + public event EventHandler onAdShowFailureEvent; + public event EventHandler onAdLoadEvent; + public event EventHandler onAdLoadFailureEvent; + public event EventHandler onAdClickEvent; + public event EventHandler onRewardEvent; + public event EventHandler onAdSourceAttemptEvent; + public event EventHandler onAdSourceFilledEvent; + public event EventHandler onAdSourceLoadFailureEvent; + public event EventHandler onAdSourceBiddingAttemptEvent; + public event EventHandler onAdSourceBiddingFilledEvent; + public event EventHandler onAdSourceBiddingFailureEvent; + public event EventHandler onPlayAgainStart; + public event EventHandler onPlayAgainEnd; + public event EventHandler onPlayAgainFailure; + public event EventHandler onPlayAgainClick; + public event EventHandler onPlayAgainReward; + // public void loadSplashAd(string placementId, string mapJson) {} + public void loadSplashAd(string placementId, int fetchAdTimeout, string defaultAdSourceConfig, string mapJson) {} + public void setListener(ATSplashAdListener listener) {} + + public bool hasSplashAdReady(string placementId) { + return false; + } + + public string checkAdStatus(string placementId) { + return ""; + } + + public void showSplashAd(string placementId, string mapJson) {} + + /*** + * 获取所有可用缓存广告 + */ + public string getValidAdCaches(string placementId) { + return ""; + } + + public void entryScenarioWithPlacementID(string placementId, string scenarioID) {} + } } \ No newline at end of file diff --git a/Assets/AnyThinkAds/Platform/Android.meta b/Assets/AnyThinkAds/Platform/Android.meta index 2937f23..9661c03 100644 --- a/Assets/AnyThinkAds/Platform/Android.meta +++ b/Assets/AnyThinkAds/Platform/Android.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3e06b6a7bea414435806d944b50c9238 +guid: b0a6ebc6626634f558dc5c05feb59058 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs b/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs new file mode 100644 index 0000000..5fbc91c --- /dev/null +++ b/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using AnyThinkAds.Common; +using AnyThinkAds.Api; +using AnyThinkAds.ThirdParty.LitJson; + +namespace AnyThinkAds.Android +{ + public class ATSplashAdClient : AndroidJavaProxy, IATSplashAdClient + { + public event EventHandler onAdLoadTimeoutEvent; + public event EventHandler onDeeplinkEvent; + public event EventHandler onDownloadConfirmEvent; + public event EventHandler onAdLoadEvent; + public event EventHandler onAdLoadFailureEvent; + public event EventHandler onAdShowEvent; + public event EventHandler onAdShowFailureEvent; + public event EventHandler onAdCloseEvent; + public event EventHandler onAdClickEvent; + public event EventHandler onAdSourceAttemptEvent; + public event EventHandler onAdSourceFilledEvent; + public event EventHandler onAdSourceLoadFailureEvent; + public event EventHandler onAdSourceBiddingAttemptEvent; + public event EventHandler onAdSourceBiddingFilledEvent; + public event EventHandler onAdSourceBiddingFailureEvent; + + private Dictionary splashHelperMap = new Dictionary(); + private ATSplashAdListener splashAdListener; + + private int fetchAdTimeout = 0; + private string defaultAdSourceConfig; + + public ATSplashAdClient() : base("com.anythink.unitybridge.splash.SplashListener") + { + + } + + private AndroidJavaObject getSplashHelper(string placementId) + { + try + { + if (!splashHelperMap.ContainsKey(placementId)) + { + AndroidJavaObject splashHelper = new AndroidJavaObject( + "com.anythink.unitybridge.splash.SplashHelper", this); + splashHelper.Call("initSplash", placementId, fetchAdTimeout, defaultAdSourceConfig); + splashHelperMap.Add(placementId, splashHelper); + return splashHelper; + } else { + return splashHelperMap[placementId]; + } + } + catch(Exception e) + { + ATLogger.LogError("getSplashHelper() >>> error: {0}", e.Message); + } + return null; + } + + public void loadSplashAd(string placementId, int fetchAdTimeout = 0, string defaultAdSourceConfig = "", string mapJson = "") + { + this.fetchAdTimeout = fetchAdTimeout; + this.defaultAdSourceConfig = defaultAdSourceConfig; + try + { + ATLogger.Log("loadSplashAd() >>> placementId: {0}", placementId); + getSplashHelper(placementId).Call("loadAd", mapJson); + } + catch (System.Exception e) + { + ATLogger.LogError("loadSplashAd() >>> error: {0}", e.Message); + } + } + + public void setListener(ATSplashAdListener listener) + { + this.splashAdListener = listener; + } + + public bool hasSplashAdReady(string placementId) + { + bool isAdReady = false; + ATLogger.Log("hasSplashAdReady() >>> placementId: {0}", placementId); + try + { + isAdReady = getSplashHelper(placementId).Call("isAdReady"); + } + catch(Exception e) + { + ATLogger.LogError("hasSplashAdReady() >>> error: {0}", e.Message); + } + return isAdReady; + } + + public string checkAdStatus(string placementId) + { + string adStatusJsonString = ""; + ATLogger.Log("checkAdStatus() >>> placementId: {0}", placementId); + try + { + adStatusJsonString = getSplashHelper(placementId).Call("checkAdStatus"); + } + catch (System.Exception e) + { + ATLogger.LogError("checkAdStatus() >>> error: {0}", e.Message); + } + return adStatusJsonString; + } + + public void showSplashAd(string placementId, string mapJson) + { + ATLogger.Log("showSplashAd() >>> placementId: {0}, mapJson: {1}", placementId, mapJson); + try + { + getSplashHelper(placementId).Call("showAd", mapJson); + } + catch(Exception e) + { + ATLogger.LogError("showSplashAd() >>> error: {0}", e.Message); + } + } + + public string getValidAdCaches(string placementId) + { + ATLogger.Log("getValidAdCaches() >>> placementId: {0}", placementId); + string adString = ""; + try + { + adString = getSplashHelper(placementId).Call("getValidAdCaches"); + } + catch(Exception e) + { + ATLogger.LogError("getValidAdCaches() >>> error: {0}", e.Message); + } + return adString; + } + + public void entryScenarioWithPlacementID(string placementId, string scenarioID) + { + ATLogger.Log("entryScenarioWithPlacementID() >>> placementId: {0}, scenarioID: {1}", placementId, scenarioID); + + try + { + getSplashHelper(placementId).Call("entryAdScenario", scenarioID); + } + catch(Exception e) + { + ATLogger.LogError("entryScenarioWithPlacementID() >>> error: {0}", e.Message); + } + } + + public void onSplashAdLoad(String unitId, bool isTimeout) + { + onAdLoadEvent?.Invoke(this, new ATAdEventArgs(unitId, "", isTimeout)); + } + + public void onSplashAdLoadTimeOut(String unitId) + { + onAdLoadTimeoutEvent?.Invoke(this, new ATAdEventArgs(unitId, "", true)); + } + + public void onSplashAdLoadFailed(String unitId, String code, String msg) + { + onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(unitId, code, msg)); + } + + public void onSplashAdShow(String unitId, String callbackJson) + { + onAdShowEvent?.Invoke(this, new ATAdEventArgs(unitId, callbackJson)); + } + + public void onSplashAdClick(String unitId, String callbackJson) + { + onAdClickEvent?.Invoke(this, new ATAdEventArgs(unitId, callbackJson)); + } + + public void onSplashAdDismiss(String unitId, String callbackJson) + { + onAdClickEvent?.Invoke(this, new ATAdEventArgs(unitId, callbackJson)); + } + + public void onSplashAdDeeplinkCallback(String unitId, String callbackJson, bool isSuccess) + { + onDeeplinkEvent?.Invoke(this, new ATAdEventArgs(unitId, callbackJson, false, isSuccess)); + } + + public void onSplashAdDownloadConfirm(String unitId, String callbackJson) + { + onDownloadConfirmEvent?.Invoke(this, new ATAdEventArgs(unitId, callbackJson)); + } + + // Adsource Listener + public void onAdSourceBiddingAttempt(string placementId, string callbackJson) + { + ATLogger.Log("onAdSourceBiddingAttempt...unity3d." + placementId + "," + callbackJson); + onAdSourceBiddingAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + + public void onAdSourceBiddingFilled(string placementId, string callbackJson) + { + ATLogger.Log("onAdSourceBiddingFilled...unity3d." + placementId + "," + callbackJson); + + onAdSourceBiddingFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + + public void onAdSourceBiddingFail(string placementId, string callbackJson, string code, string error) + { + ATLogger.Log("onAdSourceBiddingFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson); + + onAdSourceBiddingFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error)); + } + + public void onAdSourceAttempt(string placementId, string callbackJson) + { + ATLogger.Log("onAdSourceAttempt...unity3d." + placementId + "," + callbackJson); + + onAdSourceAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + + public void onAdSourceLoadFilled(string placementId, string callbackJson) + { + ATLogger.Log("onAdSourceLoadFilled...unity3d." + placementId + "," + callbackJson); + + onAdSourceFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + + public void onAdSourceLoadFail(string placementId, string callbackJson, string code, string error) + { + ATLogger.Log("onAdSourceLoadFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson); + + onAdSourceLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error)); + } + } +} diff --git a/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs.meta b/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs.meta new file mode 100644 index 0000000..6d803f0 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/Android/ATSplashAdClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20290a905405e463f823d9c16043cee3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkAds/Platform/iOS.meta b/Assets/AnyThinkAds/Platform/iOS.meta index 6529c9c..a27f1ad 100644 --- a/Assets/AnyThinkAds/Platform/iOS.meta +++ b/Assets/AnyThinkAds/Platform/iOS.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 24acb4405bd40449f82a6ea03b5824c7 +guid: da68e624ffa1041e889b8d3eb9187af2 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs b/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs new file mode 100644 index 0000000..227ea33 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using AnyThinkAds.Common; +using AnyThinkAds.Api; +using AnyThinkAds.ThirdParty.LitJson; + + +namespace AnyThinkAds.iOS { + + public class ATSplashAdClient : IATSplashAdClient { + private ATSplashAdListener anyThinkListener; + public event EventHandler onAdLoadEvent; + public event EventHandler onAdLoadFailureEvent; + public event EventHandler onAdShowEvent; + public event EventHandler onAdShowFailureEvent; + public event EventHandler onAdCloseEvent; + public event EventHandler onAdClickEvent; + public event EventHandler onAdVideoStartEvent; + public event EventHandler onAdVideoFailureEvent; + public event EventHandler onAdVideoEndEvent; + public event EventHandler onAdSourceAttemptEvent; + public event EventHandler onAdSourceFilledEvent; + public event EventHandler onAdSourceLoadFailureEvent; + public event EventHandler onAdSourceBiddingAttemptEvent; + public event EventHandler onAdSourceBiddingFilledEvent; + public event EventHandler onAdSourceBiddingFailureEvent; + public event EventHandler onAdLoadTimeoutEvent; + public event EventHandler onDeeplinkEvent; + public event EventHandler onDownloadConfirmEvent; + + public void addsetting(string placementId,string json){ + //todo... + } + + public void setListener(ATSplashAdListener listener) { + Debug.Log("Unity: ATSplashAdAdClient::setListener()"); + anyThinkListener = listener; + } + + public void loadSplashAd(string placementId, int fetchAdTimeout, string defaultAdSourceConfig, string mapJson) { + Debug.Log("Unity: ATSplashAdAdClient::loadSplashAd()"); + ATSplashAdWrapper.setClientForPlacementID(placementId, this); + ATSplashAdWrapper.loadSplashAd(placementId, mapJson); + } + + public bool hasSplashAdReady(string placementId) { + Debug.Log("Unity: ATSplashAdAdClient::hasSplashAdReady()"); + return ATSplashAdWrapper.hasSplashAdReady(placementId); + } + + public void showSplashAd(string placementId, string mapJson) { + Debug.Log("Unity: ATSplashAdAdClient::showSplashAd()"); + ATSplashAdWrapper.showSplashAd(placementId, mapJson); + } + + public void cleanCache(string placementId) { + Debug.Log("Unity: ATSplashAdAdClient::cleanCache()"); + ATSplashAdWrapper.clearCache(placementId); + } + + public string checkAdStatus(string placementId) { + Debug.Log("Unity: ATSplashAdAdClient::checkAdStatus()"); + return ATSplashAdWrapper.checkAdStatus(placementId); + } + + public string getValidAdCaches(string placementId) + { + Debug.Log("Unity: ATSplashAdAdClient::getValidAdCaches()"); + return ATSplashAdWrapper.getValidAdCaches(placementId); + } + + public void entryScenarioWithPlacementID(string placementId, string scenarioID){ + Debug.Log("Unity: ATSplashAdAdClient::entryScenarioWithPlacementID()"); + ATSplashAdWrapper.entryScenarioWithPlacementID(placementId,scenarioID); + } + + + //Callbacks + public void OnSplashAdDeeplink(string placementID, String callbackJson, bool isSuccess) { + onDeeplinkEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson, false, isSuccess)); + } + + public void OnSplashAdLoadTimeout(string placementID) { + Debug.Log("OnSplashAdLoadTimeout...unity3d."); + onAdLoadTimeoutEvent?.Invoke(this, new ATAdEventArgs(placementID, "", true)); + } + + public void OnSplashAdLoaded(string placementID) { + Debug.Log("onSplashAdLoaded...unity3d."); + onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementID)); + } + + public void OnSplashAdLoadFailure(string placementID, string code, string error) { + Debug.Log("onSplashAdFailed...unity3d."); + onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementID, code, error)); + } + + public void OnSplashAdVideoPlayFailure(string placementID, string code, string error) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdVideoPlayFailure()"); + onAdVideoFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementID, code, error)); + } + + public void OnSplashAdVideoPlayStart(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdPlayStart()"); + onAdVideoStartEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson)); + } + + public void OnSplashAdVideoPlayEnd(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdVideoPlayEnd()"); + onAdVideoEndEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson)); + } + + public void OnSplashAdShow(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdShow()"); + onAdShowEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson)); + } + + public void OnSplashAdFailedToShow(string placementID) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdFailedToShow()"); + onAdShowFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementID, "-1", "Failed to show video ad")); + } + + public void OnSplashAdClick(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdClick()"); + onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson)); + } + + public void OnSplashAdClose(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdAdClient::OnSplashAdClose()"); + onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementID, callbackJson)); + } + + //auto callbacks + public void startLoadingADSource(string placementId, string callbackJson) + { + Debug.Log("Unity: ATSplashAdAdClient::startLoadingADSource()"); + onAdSourceAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + public void finishLoadingADSource(string placementId, string callbackJson) + { + Debug.Log("Unity: ATSplashAdAdClient::finishLoadingADSource()"); + onAdSourceFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + public void failToLoadADSource(string placementId, string callbackJson,string code, string error) + { + Debug.Log("Unity: ATSplashAdAdClient::failToLoadADSource()"); + onAdSourceLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error)); + } + public void startBiddingADSource(string placementId, string callbackJson) + { + Debug.Log("Unity: ATSplashAdAdClient::startBiddingADSource()"); + onAdSourceBiddingAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + public void finishBiddingADSource(string placementId, string callbackJson) + { + Debug.Log("Unity: ATSplashAdAdClient::finishBiddingADSource()"); + onAdSourceBiddingFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); + } + public void failBiddingADSource(string placementId,string callbackJson, string code, string error) + { + Debug.Log("Unity: ATSplashAdAdClient::failBiddingADSource()"); + onAdSourceBiddingFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error)); + } + + // Auto + public void addAutoLoadAdPlacementID(string[] placementIDList) + { + Debug.Log("Unity: ATSplashAdAdClient:addAutoLoadAdPlacementID()"); + + + + if (placementIDList != null && placementIDList.Length > 0) + { + foreach (string placementID in placementIDList) + { + ATSplashAdWrapper.setClientForPlacementID(placementID, this); + } + + string placementIDListString = JsonMapper.ToJson(placementIDList); + ATSplashAdWrapper.addAutoLoadAdPlacementID(placementIDListString); + Debug.Log("addAutoLoadAdPlacementID, placementIDList === " + placementIDListString); + } + else + { + Debug.Log("addAutoLoadAdPlacementID, placementIDList = null"); + } + + } + + public void removeAutoLoadAdPlacementID(string placementId) + { + Debug.Log("Unity: ATSplashAdAdClient:removeAutoLoadAdPlacementID()"); + ATSplashAdWrapper.removeAutoLoadAdPlacementID(placementId); + } + + public bool autoLoadSplashAdReadyForPlacementID(string placementId) + { + Debug.Log("Unity: ATSplashAdAdClient:autoLoadSplashAdReadyForPlacementID()"); + return ATSplashAdWrapper.autoLoadSplashAdReadyForPlacementID(placementId); + } + public string getAutoValidAdCaches(string placementId) + { + Debug.Log("Unity: ATSplashAdAdClient:getAutoValidAdCaches()"); + return ATSplashAdWrapper.getAutoValidAdCaches(placementId); + } + + public string checkAutoAdStatus(string placementId) { + Debug.Log("Unity: ATSplashAdAdClient::checkAutoAdStatus()"); + return ATSplashAdWrapper.checkAutoAdStatus(placementId); + } + + + public void setAutoLocalExtra(string placementId, string mapJson) + { + Debug.Log("Unity: ATSplashAdAdClient:setAutoLocalExtra()"); + ATSplashAdWrapper.setAutoLocalExtra(placementId, mapJson); + } + public void entryAutoAdScenarioWithPlacementID(string placementId, string scenarioID) + { + Debug.Log("Unity: ATSplashAdAdClient:entryAutoAdScenarioWithPlacementID()"); + ATSplashAdWrapper.entryAutoAdScenarioWithPlacementID(placementId, scenarioID); + } + public void showAutoAd(string placementId, string mapJson) + { + Debug.Log("Unity: ATSplashAdAdClient::showAutoAd()"); + ATSplashAdWrapper.showAutoSplashAd(placementId, mapJson); + } + + + } +} diff --git a/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs.meta b/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs.meta new file mode 100644 index 0000000..b659c7e --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/ATSplashAdClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ff13e06039d104e3e9c3cb155b8f4ecd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal.meta b/Assets/AnyThinkAds/Platform/iOS/Internal.meta index 4079da8..8d6375c 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal.meta +++ b/Assets/AnyThinkAds/Platform/iOS/Internal.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4787b4f73b23449fa906f342dfca1d00 +guid: 71c4a563eff03483d8d19430791ee6f8 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C.meta b/Assets/AnyThinkAds/Platform/iOS/Internal/C.meta index b80f479..4b9a61a 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C.meta +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bd4b39134d1e64f1c9672717d4878e58 +guid: 304162e40b68148bb94a0c8806efce99 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBannerAdWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBannerAdWrapper.m index bae3914..c19e7bc 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBannerAdWrapper.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBannerAdWrapper.m @@ -123,13 +123,13 @@ static NSString *kATBannerAdLoadingExtraInlineAdaptiveOrientationKey = @"inline_ statusDict[@"isReady"] = @(checkLoadModel.isReady); statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@"ATBannerAdWrapper::statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } -(NSString*) getValidAdCaches:(NSString *)placementID { NSArray *array = [[ATAdManager sharedManager] getBannerValidAdsForPlacementID:placementID]; NSLog(@"ATNativeAdWrapper::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } UIEdgeInsets SafeAreaInsets_ATUnityBanner() { diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBaseUnityWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBaseUnityWrapper.m index a6d6544..3994b5f 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBaseUnityWrapper.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATBaseUnityWrapper.m @@ -70,6 +70,25 @@ NSMutableDictionary *msgDict = [NSMutableDictionary dictionary]; if (![ATUnityUtilities isEmpty:extra]) { + + // 过滤SDK返回参数的 user_load_extra_data 中不支持的类型 + if (extra[kATUnityUserExtraDataKey] != nil) { + NSMutableDictionary *extraDictM = [NSMutableDictionary dictionaryWithDictionary:extra]; + NSMutableDictionary *extraDataTemp = [NSMutableDictionary dictionary]; + NSMutableDictionary *extraDataDictM = [NSMutableDictionary dictionaryWithDictionary:extra[kATUnityUserExtraDataKey]]; + for (NSString *key in extraDataDictM.allKeys) { + if ([extraDataDictM[key] isKindOfClass:[NSString class]] || [extraDataDictM[key] isMemberOfClass:[NSNumber class]]) { + [extraDataTemp setValue:extraDataDictM[key] forKey:key]; + } + } + if ([extraDataTemp count]) { + [extraDictM setValue:extraDataTemp forKey:kATUnityUserExtraDataKey]; + } else { + [extraDictM removeObjectForKey:kATUnityUserExtraDataKey]; + } + extra = extraDictM; + } + if (extra[@"extra"] != nil) { msgDict[@"extra"] = extra[@"extra"]; msgDict[@"rewarded"] = extra[@"rewarded"]; diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATInterstitialAdWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATInterstitialAdWrapper.m index 7698806..3d8d8b8 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATInterstitialAdWrapper.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATInterstitialAdWrapper.m @@ -108,7 +108,7 @@ static NSString *kATInterstitialSizeUsesPixelFlagKey = @"uses_pixel"; -(NSString*) getValidAdCaches:(NSString *)placementID { NSArray *array = [[ATAdManager sharedManager] getInterstitialValidAdsForPlacementID:placementID]; NSLog(@"ATNativeAdWrapper::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } -(void) showInterstitialAdWithPlacementID:(NSString*)placementID extraJsonString:(NSString*)extraJsonString { @@ -123,7 +123,7 @@ static NSString *kATInterstitialSizeUsesPixelFlagKey = @"uses_pixel"; statusDict[@"isReady"] = @(checkLoadModel.isReady); statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@"ATInterstitialAdWrapper::statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } - (void)entryScenarioWithPlacementID:(NSString *)placementID scenarioID:(NSString *)scenarioID{ @@ -177,7 +177,7 @@ static NSString *kATInterstitialSizeUsesPixelFlagKey = @"uses_pixel"; NSLog(@"Unity: getAutoValidAdCaches::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } -(NSString*) checkAutoAdStatus:(NSString *)placementID { @@ -190,7 +190,7 @@ static NSString *kATInterstitialSizeUsesPixelFlagKey = @"uses_pixel"; statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@":checkAutoAdStatus statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } -(void) setAutoLocalExtra:(NSString*)placementID customDataJSONString:(NSString*)customDataJSONString{ diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeAdWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeAdWrapper.m index 231c3dd..0b80f24 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeAdWrapper.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeAdWrapper.m @@ -150,7 +150,7 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() { statusDict[@"isReady"] = @(checkLoadModel.isReady); statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@"ATNativeAdWrapper::statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } - (void)entryScenarioWithPlacementID:(NSString *)placementID scenarioID:(NSString *)scenarioID{ @@ -160,7 +160,7 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() { -(NSString*) getValidAdCaches:(NSString *)placementID { NSArray *array = [[ATAdManager sharedManager] getNativeValidAdsForPlacementID:placementID]; NSLog(@"ATNativeAdWrapper::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } -(void) showNativeAdWithPlacementID:(NSString*)placementID metricsJSONString:(NSString*)metricsJSONString extraJsonString:(NSString*)extraJsonString { @@ -286,15 +286,17 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() { NSMutableArray *array = [@[selfRenderView.iconImageView,selfRenderView.titleLabel,selfRenderView.textLabel,selfRenderView.ctaLabel,selfRenderView.mainImageView] mutableCopy]; - if (mediaView) { + if (mediaView && offer.nativeAd.isVideoContents) { [array addObject:mediaView]; + + selfRenderView.mediaView = mediaView; + [selfRenderView addSubview:mediaView]; + //避免被遮挡 + [selfRenderView bringSubviewToFront:selfRenderView.logoImageView]; } [nativeADView registerClickableViewArray:array]; - selfRenderView.mediaView = mediaView; - - [selfRenderView addSubview:mediaView]; self.adView = nativeADView; diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeSelfRenderView.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeSelfRenderView.m index 489ee8d..ce63ac4 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeSelfRenderView.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATNativeSelfRenderView.m @@ -182,7 +182,7 @@ self.textLabel.backgroundColor = [UIColor clearColor]; } -(void) configureMetrics:(NSDictionary *)metrics { - NSDictionary *views = @{kNativeAssetTitle:_titleLabel, kNativeAssetText:_textLabel, kNativeAssetCta:_ctaLabel, kNativeAssetRating:_ratingLabel, kNativeAssetAdvertiser:_advertiserLabel, kNativeAssetIcon:_iconImageView, kNativeAssetMainImage:_mainImageView, kNativeAssetDislike:_dislikeButton}; + NSDictionary *views = @{kNativeAssetTitle:_titleLabel, kNativeAssetText:_textLabel, kNativeAssetCta:_ctaLabel, kNativeAssetRating:_ratingLabel, kNativeAssetAdvertiser:_advertiserLabel, kNativeAssetIcon:_iconImageView, kNativeAssetMainImage:_mainImageView, kNativeAssetSponsorImage:_logoImageView, kNativeAssetDislike:_dislikeButton}; [views enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { CGRect frame = CGRectFromString(metrics[key][kParsedPropertiesFrameKey]); [self addConstraintsWithVisualFormat:[NSString stringWithFormat:@"|-x-[%@(w)]", key] options:0 metrics:@{@"x":@(frame.origin.x), @"w":@(frame.size.width)} views:views]; diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATRewardedVideoWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATRewardedVideoWrapper.m index 7c0acd2..9e1ed06 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATRewardedVideoWrapper.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATRewardedVideoWrapper.m @@ -101,13 +101,13 @@ NSString *const kLoadExtraMediaExtraKey = @"UserExtraData"; statusDict[@"isReady"] = @(checkLoadModel.isReady); statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@"ATRewardedVideoWrapper::statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } -(NSString*) getValidAdCaches:(NSString *)placementID { NSArray *array = [[ATAdManager sharedManager] getRewardedVideoValidAdsForPlacementID:placementID]; NSLog(@"ATNativeAdWrapper::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } -(void) showRewardedVideoWithPlacementID:(NSString*)placementID extraJsonString:(NSString*)extraJsonString { @@ -177,7 +177,7 @@ NSString *const kLoadExtraMediaExtraKey = @"UserExtraData"; -(NSString*) getAutoValidAdCaches:(NSString *)placementID{ NSArray *array = [[ATRewardedVideoAutoAdManager sharedInstance] checkValidAdCachesWithPlacementID:placementID]; NSLog(@"Unity: getAutoValidAdCaches::array = %@", array); - return array.jsonString; + return array.jsonFilterString; } -(NSString*) checkAutoAdStatus:(NSString *)placementID { @@ -187,7 +187,7 @@ NSString *const kLoadExtraMediaExtraKey = @"UserExtraData"; statusDict[@"isReady"] = @(checkLoadModel.isReady); statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; NSLog(@"ATRewardedVideoWrapper::checkAutoAdStatus statusDict = %@", statusDict); - return statusDict.jsonString; + return statusDict.jsonFilterString; } diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h new file mode 100644 index 0000000..b8857c2 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h @@ -0,0 +1,18 @@ +// +// ATSplashAdWrapper.h +// UnityFramework +// +// Created by li zhixuan on 2023/5/4. +// + +#import + +#import "ATBaseUnityWrapper.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ATSplashAdWrapper : ATBaseUnityWrapper + +@end + +NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework.meta b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h.meta similarity index 86% rename from Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework.meta rename to Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h.meta index fe54a76..4bd4633 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework.meta +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.h.meta @@ -1,6 +1,5 @@ fileFormatVersion: 2 -guid: 0e087ddcfe84f4a48a9a48ae9f89395a -folderAsset: yes +guid: 6b3d7c39097da4302b4de8c9415a5f44 PluginImporter: externalObjects: {} serializedVersion: 2 @@ -8,7 +7,7 @@ PluginImporter: executionOrder: {} defineConstraints: [] isPreloaded: 0 - isOverridable: 1 + isOverridable: 0 isExplicitlyReferenced: 0 validateReferences: 1 platformData: diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m new file mode 100644 index 0000000..12c2a19 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m @@ -0,0 +1,243 @@ +// +// ATSplashAdWrapper.m +// UnityFramework +// +// Created by li zhixuan on 2023/5/4. +// + +#import "ATSplashAdWrapper.h" +#import "ATUnityUtilities.h" +#import + +@interface ATSplashAdWrapper () + +@end + +@implementation ATSplashAdWrapper + ++ (instancetype)sharedInstance { + static ATSplashAdWrapper *sharedInstance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[ATSplashAdWrapper alloc] init]; + }); + return sharedInstance; +} + +- (NSString *)scriptWrapperClass { + return @"ATSplashAdWrapper"; +} + +- (id)selWrapperClassWithDict:(NSDictionary *)dict callback:(void(*)(const char*, const char*))callback { + NSString *selector = dict[@"selector"]; + NSArray* arguments = dict[@"arguments"]; + NSString *firstObject = @""; + NSString *lastObject = @""; + if (![ATUnityUtilities isEmpty:arguments]) { + for (int i = 0; i < arguments.count; i++) { + if (i == 0) { firstObject = arguments[i]; } + else { lastObject = arguments[i]; } + } + } + + if ([selector isEqualToString:@"loadSplashAdWithPlacementID:customDataJSONString:callback:"]) { + [self loadSplashAdWithPlacementID:firstObject customDataJSONString:lastObject callback:callback]; + } else if ([selector isEqualToString:@"splashAdReadyForPlacementID:"]) { + return [NSNumber numberWithBool:[self splashAdReadyForPlacementID:firstObject]]; + } else if ([selector isEqualToString:@"showSplashAdWithPlacementID:extraJsonString:"]) { + [self showSplashAdWithPlacementID:firstObject extraJsonString:lastObject]; + } else if ([selector isEqualToString:@"checkAdStatus:"]) { + return [self checkAdStatus:firstObject]; + } else if ([selector isEqualToString:@"clearCache"]) { + [self clearCache]; + } else if ([selector isEqualToString:@"getValidAdCaches:"]) { + return [self getValidAdCaches:firstObject]; + }else if ([selector isEqualToString:@"entryScenarioWithPlacementID:scenarioID:"]) { + [self entryScenarioWithPlacementID:firstObject scenarioID:lastObject]; + } + + return nil; +} + +- (void)loadSplashAdWithPlacementID:(NSString*)placementID customDataJSONString:(NSString*)customDataJSONString callback:(void(*)(const char*, const char*))callback { + + [self setCallBack:callback forKey:placementID]; + NSMutableDictionary *extra = [NSMutableDictionary dictionary]; + if ([customDataJSONString isKindOfClass:[NSString class]] && [customDataJSONString length] > 0) { + NSDictionary *extraDict = [NSJSONSerialization JSONObjectWithData:[customDataJSONString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil]; + [extra addEntriesFromDictionary:extraDict]; + } + NSString *defaultAdSourceConfig = extra[@"default_adSource_config"]; + NSLog(@"ATSplashAdWrapper::extra = %@", extra); + [[ATAdManager sharedManager] loadADWithPlacementID:placementID + extra:extra + delegate:self + containerView:nil + defaultAdSourceConfig:defaultAdSourceConfig]; +} + + +- (BOOL)splashAdReadyForPlacementID:(NSString*)placementID { + return [[ATAdManager sharedManager] splashReadyForPlacementID:placementID]; +} + +- (NSString*)getValidAdCaches:(NSString *)placementID { + NSArray *array = [[ATAdManager sharedManager] getSplashValidAdsForPlacementID:placementID]; + NSLog(@"ATSplashAdWrapper::array = %@", array); + return array.jsonFilterString; +} + +- (void)showSplashAdWithPlacementID:(NSString*)placementID extraJsonString:(NSString*)extraJsonString { + [[ATAdManager sharedManager] showSplashWithPlacementID:placementID scene:@"" window:[UIApplication sharedApplication].delegate.window delegate:self]; +} + +- (NSString*)checkAdStatus:(NSString *)placementID { + ATCheckLoadModel *checkLoadModel = [[ATAdManager sharedManager] checkSplashLoadStatusForPlacementID:placementID]; + NSMutableDictionary *statusDict = [NSMutableDictionary dictionary]; + statusDict[@"isLoading"] = @(checkLoadModel.isLoading); + statusDict[@"isReady"] = @(checkLoadModel.isReady); + statusDict[@"adInfo"] = checkLoadModel.adOfferInfo; + NSLog(@"ATSplashAdWrapper::statusDict = %@", statusDict); + return statusDict.jsonFilterString; +} + +- (void)entryScenarioWithPlacementID:(NSString *)placementID scenarioID:(NSString *)scenarioID{ + [[ATAdManager sharedManager] entrySplashScenarioWithPlacementID:placementID scene:scenarioID]; +} + +- (void) clearCache { + +} + +#pragma mark - ATSplashDelegate +/// Splash ad displayed successfully +- (void)splashDidShowForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + [self invokeCallback:@"OnSplashAdShow" placementID:placementID error:nil extra:extra]; +} + +/// Splash ad click +- (void)splashDidClickForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + [self invokeCallback:@"OnSplashAdClick" placementID:placementID error:nil extra:extra]; +} + +/// Splash ad closed +- (void)splashDidCloseForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + [self invokeCallback:@"OnSplashAdClose" placementID:placementID error:nil extra:extra]; +} + +/// Callback when the splash ad is loaded successfully +/// @param isTimeout whether timeout +/// v 5.7.73 +- (void)didFinishLoadingSplashADWithPlacementID:(NSString *)placementID + isTimeout:(BOOL)isTimeout { +} + +/// Splash ad loading timeout callback +/// v 5.7.73 +- (void)didTimeoutLoadingSplashADWithPlacementID:(NSString *)placementID { + [self invokeCallback:@"OnSplashAdLoadTimeout" placementID:placementID error:nil extra:nil]; +} + +/// Splash ad failed to display +/// currently supports Pangle, Guangdiantong and Baidu +- (void)splashDidShowFailedForPlacementID:(NSString *)placementID + error:(NSError *)error + extra:(NSDictionary *)extra { + [self invokeCallback:@"OnSplashAdFailedToShow" placementID:placementID error:error extra:extra]; +} + +/// Whether the click jump of Splash ad is in the form of Deeplink +/// note: only suport TopOn Adx ad +- (void)splashDeepLinkOrJumpForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra + result:(BOOL)success { + NSMutableDictionary *newExtra = [[NSMutableDictionary alloc] initWithDictionary:extra]; + newExtra[@"success"] = @(success); + [self invokeCallback:@"OnSplashAdDeeplink" placementID:placementID error:nil extra:newExtra]; +} + +/// Splash ad closes details page +- (void)splashDetailDidClosedForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + +} + +/// Called when splash zoomout view did click +/// note: only suport Pangle splash zoomout view and the Tencent splash V+ ad +- (void)splashZoomOutViewDidClickForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + +} + +/// Called when splash zoomout view did close +/// note: only suport Pangle splash zoomout view and the Tencent splash V+ ad +- (void)splashZoomOutViewDidCloseForPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + +} + +/// This callback is triggered when the skip button is customized. +/// note: only suport TopOn MyOffer, TopOn Adx and TopOn OnlineApi +/// 5.7.61+ +- (void)splashCountdownTime:(NSInteger)countdown + forPlacementID:(NSString *)placementID + extra:(NSDictionary *)extra { + +} + +#pragma mark - ATAdLoadingDelegate +/// Callback when the successful loading of the ad +- (void)didFinishLoadingADWithPlacementID:(NSString *)placementID { + [self invokeCallback:@"OnSplashAdLoaded" placementID:placementID error:nil extra:nil]; +} + +/// Callback of ad loading failure +- (void)didFailToLoadADWithPlacementID:(NSString*)placementID + error:(NSError*)error { + error = error != nil ? error : [NSError errorWithDomain:@"com.anythink.Unity3DPackage" code:100001 userInfo:@{NSLocalizedDescriptionKey:@"AT has failed to load ad", NSLocalizedFailureReasonErrorKey:@"AT has failed to load ad"}]; + [self invokeCallback:@"OnSplashAdLoadFailure" placementID:placementID error:error extra:nil]; + +} + +/// Ad start load +- (void)didStartLoadingADSourceWithPlacementID:(NSString *)placementID + extra:(NSDictionary*)extra { + [self invokeCallback:@"startLoadingADSource" placementID:placementID error:nil extra:extra]; + +} +/// Ad load success +- (void)didFinishLoadingADSourceWithPlacementID:(NSString *)placementID + extra:(NSDictionary*)extra { + [self invokeCallback:@"finishLoadingADSource" placementID:placementID error:nil extra:extra]; + +} +/// Ad load fail +- (void)didFailToLoadADSourceWithPlacementID:(NSString*)placementID + extra:(NSDictionary*)extra + error:(NSError*)error { + [self invokeCallback:@"failToLoadADSource" placementID:placementID error:error extra:extra]; +} + +/// Ad start bidding +- (void)didStartBiddingADSourceWithPlacementID:(NSString *)placementID + extra:(NSDictionary*)extra { + [self invokeCallback:@"startBiddingADSource" placementID:placementID error:nil extra:extra]; +} + +/// Ad bidding success +- (void)didFinishBiddingADSourceWithPlacementID:(NSString *)placementID + extra:(NSDictionary*)extra { + [self invokeCallback:@"finishBiddingADSource" placementID:placementID error:nil extra:extra]; +} + +/// Ad bidding fail +- (void)didFailBiddingADSourceWithPlacementID:(NSString*)placementID + extra:(NSDictionary*)extra + error:(NSError*)error { + [self invokeCallback:@"failBiddingADSource" placementID:placementID error:error extra:extra]; +} + +@end diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m.meta b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m.meta new file mode 100644 index 0000000..62e9686 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATSplashAdWrapper.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 1d17f3acf1ffb4fa9abed493f1c1623b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.h b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.h index f305718..a6a3299 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.h +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.h @@ -12,17 +12,28 @@ extern NSString *const kATUnityUtilitiesInterstitialCloseNotification; extern NSString *const kATUnityUtilitiesRewardedVideoImpressionNotification; extern NSString *const kATUnityUtilitiesRewardedVideoCloseNotification; extern NSString *const kATUnityUtilitiesAdShowingExtraScenarioKey; +extern NSString *const kATUnityUserExtraDataKey; +extern NSString *const kATUnityCheckLoadModelAdInfoKey; + + @interface ATUnityUtilities : NSObject +(BOOL)isEmpty:(id)object; @end @interface NSDictionary (KAKit) -(NSString*) jsonString; + +// 过滤SDK返回参数的 user_load_extra_data 中不支持的类型 +-(NSString*) jsonFilterString; + -(BOOL)containsObjectForKey:(id)key; @end @interface NSArray (KAKit) -(NSString*) jsonString; + +// 过滤SDK返回参数的 user_load_extra_data 中不支持的类型 +-(NSString*) jsonFilterString; @end @interface NSData(ATKit) diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.m b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.m index e8e9cbd..520a497 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.m +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/C/ATUnityUtilities.m @@ -13,6 +13,9 @@ NSString *const kATUnityUtilitiesRewardedVideoImpressionNotification = @"kATUnit NSString *const kATUnityUtilitiesRewardedVideoCloseNotification = @"kATUnityUtilitiesRewardedVideoCloseNotification"; NSString *const kATUnityUtilitiesAdShowingExtraScenarioKey = @"Scenario"; +NSString *const kATUnityUserExtraDataKey = @"user_load_extra_data"; +NSString *const kATUnityCheckLoadModelAdInfoKey = @"adInfo"; + @implementation ATUnityUtilities +(BOOL)isEmpty:(id)object { return (object == nil || [object isKindOfClass:[NSNull class]] || ([object respondsToSelector:@selector(length)] && [(NSData *)object length] == 0) || ([object respondsToSelector:@selector(count)] && [(NSArray *)object count] == 0)); @@ -37,6 +40,41 @@ NSString *const kATUnityUtilitiesAdShowingExtraScenarioKey = @"Scenario"; } } +- (NSString*)jsonFilterString { + + NSError *error; + NSData *jsonData; + + NSMutableDictionary *extraDictM = [NSMutableDictionary dictionaryWithDictionary:self[kATUnityCheckLoadModelAdInfoKey]]; + NSMutableDictionary *extraDataTemp = [NSMutableDictionary dictionary]; + NSMutableDictionary *extraDataDictM = [NSMutableDictionary dictionaryWithDictionary:self[kATUnityCheckLoadModelAdInfoKey][kATUnityUserExtraDataKey]]; + for (NSString *key in extraDataDictM.allKeys) { + if ([extraDataDictM[key] isKindOfClass:[NSString class]] || [extraDataDictM[key] isKindOfClass:[NSNumber class]]) { + [extraDataTemp setValue:extraDataDictM[key] forKey:key]; + } + } + if ([extraDataTemp count]) { + [extraDictM setValue:extraDataTemp forKey:kATUnityUserExtraDataKey]; + } else { + [extraDictM removeObjectForKey:kATUnityUserExtraDataKey]; + } + + @try { + jsonData = [NSJSONSerialization dataWithJSONObject:extraDictM + options:kNilOptions + error:&error]; + } @catch (NSException *exception) { + return @"{}"; + } @finally {} + + if (!jsonData) { + return @"{}"; + } else { + return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + } + +} + -(BOOL)containsObjectForKey:(id)key { return [self.allKeys containsObject:key]; } @@ -61,6 +99,46 @@ NSString *const kATUnityUtilitiesAdShowingExtraScenarioKey = @"Scenario"; } } +- (NSString*)jsonFilterString { + + NSError *error; + NSData *jsonData; + + NSMutableArray *filterArrayM = [NSMutableArray arrayWithCapacity:self.count]; + for (NSDictionary *adTempDict in self) { + + NSMutableDictionary *extraDictM = [NSMutableDictionary dictionaryWithDictionary:adTempDict]; + NSMutableDictionary *extraDataTemp = [NSMutableDictionary dictionary]; + NSMutableDictionary *extraDataDictM = [NSMutableDictionary dictionaryWithDictionary:adTempDict[kATUnityUserExtraDataKey]]; + for (NSString *key in extraDataDictM.allKeys) { + if ([extraDataDictM[key] isKindOfClass:[NSString class]] || [extraDataDictM[key] isKindOfClass:[NSNumber class]]) { + [extraDataTemp setValue:extraDataDictM[key] forKey:key]; + } + } + if ([extraDataTemp count]) { + [extraDictM setValue:extraDataTemp forKey:kATUnityUserExtraDataKey]; + } else { + [extraDictM removeObjectForKey:kATUnityUserExtraDataKey]; + } + [filterArrayM addObject:extraDictM]; + } + + @try { + jsonData = [NSJSONSerialization dataWithJSONObject:filterArrayM + options:kNilOptions + error:&error]; + } @catch (NSException *exception) { + return @"[]"; + } @finally {} + + if (!jsonData) { + return @"[]"; + } else { + return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + } +} + + @end @implementation NSData(ATKit) diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/Script.meta b/Assets/AnyThinkAds/Platform/iOS/Internal/Script.meta index 2036d45..ae42524 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/Script.meta +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/Script.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 299bd02f216b54e2db98218be4653d60 +guid: 2e059c89366e24ea9ad9a677576c896a folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs new file mode 100644 index 0000000..690f95f --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs @@ -0,0 +1,263 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; +using AOT; +using AnyThinkAds.ThirdParty.LitJson; +using AnyThinkAds.iOS; +#pragma warning disable 0109 +public class ATSplashAdWrapper:ATAdWrapper { + static private Dictionary clients; + static private string CMessaageReceiverClass = "ATSplashAdWrapper"; + + static public new void InvokeCallback(JsonData jsonData) { + Debug.Log("Unity: ATSplashAdWrapper::InvokeCallback()"); + string extraJson = ""; + string callback = (string)jsonData["callback"]; + Dictionary msgDict = JsonMapper.ToObject>(jsonData["msg"].ToJson()); + JsonData msgJsonData = jsonData["msg"]; + IDictionary idic = (System.Collections.IDictionary)msgJsonData; + + if (idic.Contains("extra")) { + JsonData extraJsonDate = msgJsonData["extra"]; + if (extraJsonDate != null) { + extraJson = msgJsonData["extra"].ToJson(); + } + } + + if (callback.Equals("OnSplashAdLoaded")) { + OnSplashAdLoaded((string)msgDict["placement_id"]); + } else if (callback.Equals("OnSplashAdLoadFailure")) { + Dictionary errorDict = new Dictionary(); + Dictionary errorMsg = JsonMapper.ToObject>(msgJsonData["error"].ToJson()); + if (errorMsg.ContainsKey("code")) { errorDict.Add("code", errorMsg["code"]); } + if (errorMsg.ContainsKey("reason")) { errorDict.Add("message", errorMsg["reason"]); } + OnSplashAdLoadFailure((string)msgDict["placement_id"], errorDict); + } else if (callback.Equals("OnSplashAdVideoPlayFailure")) { + Dictionary errorDict = new Dictionary(); + Dictionary errorMsg = JsonMapper.ToObject>(msgJsonData["error"].ToJson()); + if (errorMsg.ContainsKey("code")) { errorDict.Add("code", errorMsg["code"]); } + if (errorMsg.ContainsKey("reason")) { errorDict.Add("message", errorMsg["reason"]); } + OnSplashAdVideoPlayFailure((string)msgDict["placement_id"], errorDict); + } else if (callback.Equals("OnSplashAdVideoPlayStart")) { + OnSplashAdVideoPlayStart((string)msgDict["placement_id"], extraJson); + } else if (callback.Equals("OnSplashAdVideoPlayEnd")) { + OnSplashAdVideoPlayEnd((string)msgDict["placement_id"], extraJson); + } else if (callback.Equals("OnSplashAdShow")) { + OnSplashAdShow((string)msgDict["placement_id"], extraJson); + } else if (callback.Equals("OnSplashAdClick")) { + OnSplashAdClick((string)msgDict["placement_id"], extraJson); + } else if (callback.Equals("OnSplashAdClose")) { + OnSplashAdClose((string)msgDict["placement_id"], extraJson); + } else if (callback.Equals("OnSplashAdFailedToShow")) { + OnSplashAdFailedToShow((string)msgDict["placement_id"]); + }else if (callback.Equals("startLoadingADSource")) { + StartLoadingADSource((string)msgDict["placement_id"], extraJson); + }else if (callback.Equals("finishLoadingADSource")) { + FinishLoadingADSource((string)msgDict["placement_id"], extraJson); + }else if (callback.Equals("failToLoadADSource")) { + + Dictionary errorDict = new Dictionary(); + Dictionary errorMsg = JsonMapper.ToObject>(msgJsonData["error"].ToJson()); + if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); } + if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); } + FailToLoadADSource((string)msgDict["placement_id"],extraJson, errorDict); + + }else if (callback.Equals("startBiddingADSource")) { + StartBiddingADSource((string)msgDict["placement_id"], extraJson); + + }else if (callback.Equals("finishBiddingADSource")) { + FinishBiddingADSource((string)msgDict["placement_id"], extraJson); + + }else if (callback.Equals("failBiddingADSource")) { + Dictionary errorDict = new Dictionary(); + Dictionary errorMsg = JsonMapper.ToObject>(msgJsonData["error"].ToJson()); + if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); } + if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); } + FailBiddingADSource((string)msgDict["placement_id"],extraJson, errorDict); + } + + + } + + static public void setClientForPlacementID(string placementID, ATSplashAdClient client) { + if (clients == null) clients = new Dictionary(); + if (clients.ContainsKey(placementID)) clients.Remove(placementID); + clients.Add(placementID, client); + } + + static public void loadSplashAd(string placementID, string customData) { + Debug.Log("Unity: ATSplashAdWrapper::loadSplashAd(" + placementID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "loadSplashAdWithPlacementID:customDataJSONString:callback:", new object[]{placementID, customData != null ? customData : ""}, true); + } + + static public bool hasSplashAdReady(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::isSplashAdReady(" + placementID + ")"); + return ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "splashAdReadyForPlacementID:", new object[]{placementID}); + } + + static public void showSplashAd(string placementID, string mapJson) { + Debug.Log("Unity: ATSplashAdWrapper::showSplashAd(" + placementID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showSplashAdWithPlacementID:extraJsonString:", new object[]{placementID, mapJson}); + } + + static public void clearCache(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::clearCache()"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "clearCache", null); + } + + static public string checkAdStatus(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::checkAdStatus(" + placementID + ")"); + return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "checkAdStatus:", new object[]{placementID}); + } + + static public string getValidAdCaches(string placementID) + { + Debug.Log("Unity: ATSplashAdWrapper::checkAdStatus(" + placementID + ")"); + return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "getValidAdCaches:", new object[] { placementID }); + } + + static public void entryScenarioWithPlacementID(string placementID, string scenarioID) + { + Debug.Log("Unity: ATSplashAdWrapper::entryScenarioWithPlacementID(" + placementID + scenarioID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "entryScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID}); + } + + //Callbacks + static private void OnSplashAdLoaded(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdLoaded()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdLoaded(placementID); + } + + static private void OnSplashAdLoadFailure(string placementID, Dictionary errorDict) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdLoadFailure()"); + Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict)); + if (clients[placementID] != null) clients[placementID].OnSplashAdLoadFailure(placementID, (string)errorDict["code"], (string)errorDict["message"]); + } + + static private void OnSplashAdVideoPlayFailure(string placementID, Dictionary errorDict) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdVideoPlayFailure()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayFailure(placementID, (string)errorDict["code"], (string)errorDict["message"]); + } + + static private void OnSplashAdVideoPlayStart(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdPlayStart()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayStart(placementID, callbackJson); + } + + static private void OnSplashAdVideoPlayEnd(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdVideoPlayEnd()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayEnd(placementID, callbackJson); + } + + static private void OnSplashAdShow(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdShow()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdShow(placementID, callbackJson); + } + + static private void OnSplashAdFailedToShow(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdFailedToShow()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdFailedToShow(placementID); + } + + static private void OnSplashAdClick(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdClick()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdClick(placementID, callbackJson); + } + + static private void OnSplashAdClose(string placementID, string callbackJson) { + Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdClose()"); + if (clients[placementID] != null) clients[placementID].OnSplashAdClose(placementID, callbackJson); + } + // ad source callback + static public void StartLoadingADSource(string placementID, string callbackJson) + { + Debug.Log("Unity: ATSplashAdWrapper::StartLoadingADSource()"); + if (clients[placementID] != null) clients[placementID].startLoadingADSource(placementID, callbackJson); + } + static public void FinishLoadingADSource(string placementID, string callbackJson) + { + Debug.Log("Unity: ATSplashAdWrapper::FinishLoadingADSource()"); + if (clients[placementID] != null) clients[placementID].finishLoadingADSource(placementID, callbackJson); + } + + static public void FailToLoadADSource(string placementID,string callbackJson, Dictionary errorDict) + { + Debug.Log("Unity: ATSplashAdWrapper::FailToLoadADSource()"); + + Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict)); + if (clients[placementID] != null) clients[placementID].failToLoadADSource(placementID,callbackJson,(string)errorDict["code"], (string)errorDict["message"]); + } + + static public void StartBiddingADSource(string placementID, string callbackJson) + { + Debug.Log("Unity: ATSplashAdWrapper::StartBiddingADSource()"); + if (clients[placementID] != null) clients[placementID].startBiddingADSource(placementID, callbackJson); + } + static public void FinishBiddingADSource(string placementID, string callbackJson) + { + Debug.Log("Unity: ATSplashAdWrapper::FinishBiddingADSource()"); + if (clients[placementID] != null) clients[placementID].finishBiddingADSource(placementID, callbackJson); + } + + static public void FailBiddingADSource(string placementID, string callbackJson,Dictionary errorDict) + { + Debug.Log("Unity: ATSplashAdWrapper::FailBiddingADSource()"); + + Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict)); + if (clients[placementID] != null) clients[placementID].failBiddingADSource(placementID,callbackJson,(string)errorDict["code"], (string)errorDict["message"]); + } + + // Auto + static public void addAutoLoadAdPlacementID(string placementID) + { + Debug.Log("Unity: ATSplashAdWrapper::addAutoLoadAdPlacementID(" + placementID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "addAutoLoadAdPlacementID:callback:", new object[]{placementID}, true); + } + + static public void removeAutoLoadAdPlacementID(string placementID) + { + Debug.Log("Unity: ATSplashAdWrapper::removeAutoLoadAdPlacementID(" + placementID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "removeAutoLoadAdPlacementID:", new object[]{placementID}); + } + static public bool autoLoadSplashAdReadyForPlacementID(string placementID) + { + Debug.Log("Unity: ATSplashAdWrapper::autoLoadSplashAdReadyForPlacementID(" + placementID + ")"); + + return ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "autoLoadSplashAdReadyForPlacementID:", new object[]{placementID}); + } + static public string getAutoValidAdCaches(string placementID) + { + Debug.Log("Unity: ATSplashAdWrapper::getAutoValidAdCaches"); + return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "getAutoValidAdCaches:", new object[]{placementID}); + } + + static public string checkAutoAdStatus(string placementID) { + Debug.Log("Unity: ATSplashAdWrapper::checkAutoAdStatus(" + placementID + ")"); + return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "checkAutoAdStatus:", new object[]{placementID}); + } + + static public void setAutoLocalExtra(string placementID, string customData) + { + + Debug.Log("Unity: ATSplashAdWrapper::setAutoLocalExtra(" + placementID + customData + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "setAutoLocalExtra:customDataJSONString:", new object[] {placementID, customData != null ? customData : ""}); + } + + static public void entryAutoAdScenarioWithPlacementID(string placementID, string scenarioID) + { + Debug.Log("Unity: ATSplashAdWrapper::entryAutoAdScenarioWithPlacementID(" + placementID + scenarioID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "entryAutoAdScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID}); + } + + static public void showAutoSplashAd(string placementID, string mapJson) { + Debug.Log("Unity: ATSplashAdWrapper::showAutoSplashAd(" + placementID + ")"); + ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showAutoSplashAd:extraJsonString:", new object[]{placementID, mapJson}); + } + + + +} + + + diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs.meta b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs.meta new file mode 100644 index 0000000..310f7c7 --- /dev/null +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATSplashAdWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 72f0a51acef9146669a7d7aaa8f899af +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATUnityCBridge.cs b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATUnityCBridge.cs index 260787f..89cf23f 100644 --- a/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATUnityCBridge.cs +++ b/Assets/AnyThinkAds/Platform/iOS/Internal/Script/ATUnityCBridge.cs @@ -35,6 +35,8 @@ public class ATUnityCBridge { ATBannerAdWrapper.InvokeCallback(jsonData); } else if (wrapperClass.Equals("ATNativeBannerAdWrapper")) { ATNativeBannerAdWrapper.InvokeCallback(jsonData); + } else if (wrapperClass.Equals("ATSplashAdWrapper")) { + ATSplashAdWrapper.InvokeCallback(jsonData); } } diff --git a/Assets/AnyThinkAds/Plugins.meta b/Assets/AnyThinkAds/Plugins.meta index 3c693e3..4cdacbd 100644 --- a/Assets/AnyThinkAds/Plugins.meta +++ b/Assets/AnyThinkAds/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 29db9515d99e97b4e86706b3b5a1b4f2 +guid: 81948355b66d24e4b9cb273bbe56eac4 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android.meta b/Assets/AnyThinkAds/Plugins/Android.meta index f72f0e9..78629ae 100644 --- a/Assets/AnyThinkAds/Plugins/Android.meta +++ b/Assets/AnyThinkAds/Plugins/Android.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5d10ccf786e1ad1489b35928a36f68a4 +guid: 8aa118c29ade9fd4b9a0768c2be07862 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml b/Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml deleted file mode 100644 index c7f46f8..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Assets/AnyThinkAds/Plugins/Android/China.meta b/Assets/AnyThinkAds/Plugins/Android/China.meta index 84cf90e..603c3b4 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3732f65f0db68044d8a92831451f9edf +guid: 00e755c66928bf845a74801253f3a0ff folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/Editor.meta b/Assets/AnyThinkAds/Plugins/Android/China/Editor.meta index 10d241e..8e576c5 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/Editor.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 66e0968f254244152ae5a813ed8d0b38 +guid: 063c2379fd28a4ea9b8113386f6e2a94 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/Editor/Dependencies.xml.meta b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Dependencies.xml.meta index 480e7f8..3bea0b1 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/Editor/Dependencies.xml.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Dependencies.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8796f84f818a647e487c69b334805515 +guid: de346304da6da453fb4e4028ccfa87d9 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore.meta b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore.meta new file mode 100644 index 0000000..0983146 --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 51a89bd698bd46358af7ea78f5245d04 +timeCreated: 1693816810 \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml new file mode 100644 index 0000000..20153db --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml @@ -0,0 +1,12 @@ + + + + + https://artifact.bytedance.com/repository/pangle + + + + + + + \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml.meta b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml.meta new file mode 100644 index 0000000..daf740a --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aed17cf9003947689bdd0e379dc9c087 +timeCreated: 1693815837 \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base.meta index b459e87..8a32877 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3fed59c8c3f2f47edb4c1c29abbb1db1 +guid: 0b639822d913a42d08a8da694163cad7 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar index 0b1e617..a7adc1b 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar.meta index 871ec22..4fc6442 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_banner.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2d2eadb320c6448a7a4d2f4e2b90b4da +guid: 33c67038f4c904d05bd0875c937fa880 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar index 03cf866..b183f69 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar.meta index adfe725..90fea89 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_china_core.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 48ab74722adda4a78a3cbdcaa8194930 +guid: 3af96bb77620145fb9abbd1844f5431f PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar index 5a9f71f..01a48c8 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar.meta index 21282b8..327a2c3 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_core.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ba760aa6a72eb4d4fa5b45d56a01eb88 +guid: 81345eb1278404c50abd5f44ab66ccec PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar index 72eecf8..015f23c 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar.meta index d7fe103..47283cc 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_interstitial.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3c51c213b59544f83af22c17ddb34baa +guid: 65e41ebac4da64cdeab7d162d1212cac PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar index 3863423..a599bc8 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar.meta index fbf7e45..42f47ca 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_native.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5cf0e27873d8640d58f965370b8e4894 +guid: 7ad65e2aacd7a4428b74871d91234e4a PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar index 8798a4a..f6c9c01 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar.meta index 57e10bf..1bd5c52 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_rewardvideo.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 582c425272e48470eaa96bbc41a19ada +guid: 80b54a91dd4004c8188635f7563c603c PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar index 335d367..4a8901f 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar.meta index 4f1fcd7..6303980 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/anythink_splash.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e1253ef962331451c920d9a9cfec5d64 +guid: 0585b7a575916456b90cbbe4efd2b060 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar index 2ab5c19..e4e60b0 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar and b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar.meta index 13c9b9b..6ec7e0e 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/anythink_base/tramini_sdk.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 69eadc53c9e9c476494b0ec77e3bd34f +guid: c8aa9f53a23284bf8b454b66a6c95826 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation.meta index f8734af..466656b 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3ed214925e60e2147bbab3c2f5dcd242 +guid: b4495cf048f8b564e885f7a5205cabe5 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar new file mode 100644 index 0000000..9d10d4b Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar.meta similarity index 93% rename from Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar.meta index 9177b45..1d70e65 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/alex_adapter_gromore_4.3.0.3_v1.0.1.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6258abbd822934cb392714e9c03e7f19 +guid: f0d79a94646b5be45b4acb42e1336674 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj.meta similarity index 77% rename from Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/csj.meta index f97dada..3799ae0 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2e98980da5c894df4a84b91d90c80398 +guid: 204d1c2a7960e48ceaee45173764f175 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar new file mode 100644 index 0000000..b962331 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar.meta similarity index 93% rename from Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar.meta index 18c6491..8c3c7a6 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/anythink_network_unity_csj.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 22054e0f575364132bd673b6f3e5e611 +guid: 90dd56ba21d3f46ce8799318c4c697f6 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar new file mode 100644 index 0000000..1a70bc8 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar.meta similarity index 93% rename from Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar.meta index 51621c4..73d58e9 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/csj/open_ad_sdk_5.4.1.6.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ba11efe87ceb04de0993c8cf97924e43 +guid: 5931f1f57fd9a4414be7508e413219e2 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar deleted file mode 100644 index b587ac5..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.511.1381.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar new file mode 100644 index 0000000..b2e9d02 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar.meta similarity index 93% rename from Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar.meta index 25319ec..9b91978 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/GDTSDK.unionNormal.4.540.1410.aar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ea079269180894350971b9be667772ce +guid: 727c8d0c38d5c45698625e7047fa202f PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/anythink_network_unity_gdt.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/anythink_network_unity_gdt.aar index b2927bd..3ab14f5 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/anythink_network_unity_gdt.aar and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/gdt/anythink_network_unity_gdt.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/anythink_network_unity_kuaishou.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/anythink_network_unity_kuaishou.aar index b078d8a..eb02a1b 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/anythink_network_unity_kuaishou.aar and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/anythink_network_unity_kuaishou.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar deleted file mode 100644 index d861bcf..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.40-publishRelease-480182aa2c.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar new file mode 100644 index 0000000..fae8956 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar.meta new file mode 100644 index 0000000..ea43f7f --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/kuaishou/kssdk-ad-3.3.51.1-publishRelease-97f3383ba2.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: edd3f0c5204174a9c90fe7fd5df5a017 +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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar deleted file mode 100644 index d7ac996..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/anythink_network_unity_pangle.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar deleted file mode 100644 index a003303..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation/pangle/open_ad_sdk_5.1.0.2.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/libs.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap.meta similarity index 77% rename from Assets/AnyThinkAds/Plugins/Android/libs.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/tap.meta index b77422e..d4aeb09 100644 --- a/Assets/AnyThinkAds/Plugins/Android/libs.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9eafffd68d739204a9a9e9065e469602 +guid: ee3ef3812baa6438dbe5f11e2e336a95 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor.meta similarity index 77% rename from Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor.meta index 32ee2e4..e2a4b64 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2923aac3c298e4033a3b415a8f471a55 +guid: e47bd66773b7f401384c6ea05bf570ac folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml new file mode 100644 index 0000000..587f3fb --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml.meta similarity index 75% rename from Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml.meta rename to Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml.meta index 8794ca9..d9395a8 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 31bf077fc98a646eba2c2bbab09fa1dd +guid: b942c862531b54da5887a4aa6bc1c1e9 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar new file mode 100644 index 0000000..c7eb9f0 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar.meta new file mode 100644 index 0000000..16ee656 --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/TapAD_3.16.3.13_mediationh2.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 7c811f47b950b4838a64832d816e897d +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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar new file mode 100644 index 0000000..903b358 Binary files /dev/null and b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar.meta new file mode 100644 index 0000000..341615e --- /dev/null +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/anythink_network_unity_tap.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 1cd2c80f8f7fa46fc8c053600e333fd4 +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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin.meta index ca2eb51..27d4228 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 47210f282ec7e4e598d7af7d7929faf8 +guid: 374f4a5f4d8ab477b8f64a287fd47d78 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar deleted file mode 100644 index 539a929..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar.meta deleted file mode 100644 index e86c9e1..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/disklrucache-4.9.0.jar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: 7740db6d6ef4c4268bb57a3003ad8d08 -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar deleted file mode 100644 index 5caad10..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar.meta deleted file mode 100644 index 0ff2091..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gifdecoder-4.9.0.aar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: 9d2021a4299644d1eb7480659541aa89 -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar deleted file mode 100644 index 1365bf5..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar.meta deleted file mode 100644 index eda251e..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/glide-4.9.0.aar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: aed66fd54ff77459a87c03be0c243d31 -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gson-2.8.4.jar.meta b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gson-2.8.4.jar.meta index 87f767e..cb5b4ee 100644 --- a/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gson-2.8.4.jar.meta +++ b/Assets/AnyThinkAds/Plugins/Android/China/mediation_plugin/gson-2.8.4.jar.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4c4732d77f090499fbcd167c6616152a +guid: 2447e3291333c443d98e4082e5478186 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkAds/Plugins/Android/anythink_bridge.aar b/Assets/AnyThinkAds/Plugins/Android/anythink_bridge.aar index c5d606d..e5da5ec 100644 Binary files a/Assets/AnyThinkAds/Plugins/Android/anythink_bridge.aar and b/Assets/AnyThinkAds/Plugins/Android/anythink_bridge.aar differ diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar b/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar deleted file mode 100644 index 8483c33..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar.meta b/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar.meta deleted file mode 100644 index 04e571c..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/libs/anythink_network_mobrain_plus.aar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: a11f4c3dfcecb104490f1276247179ea -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar b/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar deleted file mode 100644 index 3e9eaa4..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar.meta b/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar.meta deleted file mode 100644 index c882b78..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/libs/mediation_ad_sdk_3.9.0.2.aar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: 1dc9f6f2d58ae7b479de2b0972d6d2ae -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar b/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar deleted file mode 100644 index 037bbda..0000000 Binary files a/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar.meta b/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar.meta deleted file mode 100644 index 4a5bb7c..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/libs/pangle_adapter_5.0.0.4.0.aar.meta +++ /dev/null @@ -1,32 +0,0 @@ -fileFormatVersion: 2 -guid: 4aed7ebe9b7827b49992bb8a511f2d0c -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: diff --git a/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt b/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt deleted file mode 100644 index 8731207..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt +++ /dev/null @@ -1,90 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile - - --optimizationpasses 5 - -#混淆时不会产生形形色色的类名 --dontusemixedcaseclassnames - -#指定不去忽略非公共的库类 --dontskipnonpubliclibraryclasses - -#不预校验 --dontpreverify - -#不优化输入的类文件 --dontoptimize - --ignorewarnings - --verbose - -#优化 --optimizations !code/simplification/arithmetic,!field/*,!class/merging/* - -#保护内部类 --keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod - -## pangle 穿山甲原有的 --keep class com.bytedance.sdk.openadsdk.** { *; } --keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;} --keep class com.pgl.sys.ces.** {*;} --keep class com.bytedance.embed_dr.** {*;} --keep class com.bytedance.embedapplog.** {*;} - -## pangle 插件新增 穿山甲插件化版本新增 --keep public class com.ss.android.**{*;} --keeppackagenames com.bytedance.sdk.openadsdk.api --keeppackagenames com.bytedance.embed_dr --keeppackagenames com.bytedance.embedapplog --keeppackagenames com.ss.android - -## 聚合混淆 --keep class bykvm*.** --keep class com.bytedance.msdk.adapter.**{ public *; } --keep class com.bytedance.msdk.api.** { - public *; -} --keep class com.bytedance.msdk.base.TTBaseAd{*;} --keep class com.bytedance.msdk.adapter.TTAbsAdLoaderAdapter{ - public *; - protected ; -} - - -#oaid 不同的版本混淆代码不太一致,你注意你接入的oaid版本 ,不接入oaid可以不添加 --dontwarn com.bun.** --keep class com.bun.** {*;} --keep class a.**{*;} --keep class XI.CA.XI.**{*;} --keep class XI.K0.XI.**{*;} --keep class XI.XI.K0.**{*;} --keep class XI.vs.K0.**{*;} --keep class XI.xo.XI.XI.**{*;} --keep class com.asus.msa.SupplementaryDID.**{*;} --keep class com.asus.msa.sdid.**{*;} --keep class com.huawei.hms.ads.identifier.**{*;} --keep class com.samsung.android.deviceidservice.**{*;} --keep class com.zui.opendeviceidlibrary.**{*;} --keep class org.json.**{*;} --keep public class com.netease.nis.sdkwrapper.Utils {public ;} \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt.meta b/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt.meta deleted file mode 100644 index b009bb0..0000000 --- a/Assets/AnyThinkAds/Plugins/Android/proguard-android.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 25907b6a78178c84292053fc0872abeb -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS.meta b/Assets/AnyThinkAds/Plugins/iOS.meta index bf977d6..62cca8d 100644 --- a/Assets/AnyThinkAds/Plugins/iOS.meta +++ b/Assets/AnyThinkAds/Plugins/iOS.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 57be5e05fa9c77145b5eccbfbbd79323 +guid: 4bd32736fde60bf4fa1dd4823a14ed75 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/iOS/Core.meta b/Assets/AnyThinkAds/Plugins/iOS/Core.meta index b395de5..e374f14 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/Core.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/Core.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 11a2320e9686c45cd8c34ce43c0350cc +guid: 152120babfc0c47eda2ca1811b8fdba6 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor.meta b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor.meta index d9d56cb..b15d539 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 893161cf104444f32abed6c746aaca3e +guid: cb5ae49b812fc409297ef6f255a690b2 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml index bf417e0..555c5c0 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml +++ b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml @@ -1,5 +1,5 @@ - + diff --git a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml.meta b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml.meta index e842750..0af9175 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/Core/Editor/Dependencies.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 254348f606df14748ad325e21335c624 +guid: 1ffafae492aad463b9880d1660c1743e TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/AnyThinkAds/Dependencies.meta b/Assets/AnyThinkAds/Plugins/iOS/csj.meta similarity index 77% rename from Assets/AnyThinkAds/Dependencies.meta rename to Assets/AnyThinkAds/Plugins/iOS/csj.meta index 5b5eac3..a40cead 100644 --- a/Assets/AnyThinkAds/Dependencies.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/csj.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a94c7b266b79787429106afa2514e1bd +guid: b533b0baca6984f16a738a8aa8e025e1 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkPlugin/Editor.meta b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor.meta similarity index 77% rename from Assets/AnyThinkPlugin/Editor.meta rename to Assets/AnyThinkAds/Plugins/iOS/csj/Editor.meta index 831f748..5a0dbe2 100644 --- a/Assets/AnyThinkPlugin/Editor.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 26d1bcdb3b8214044b38db308499f29c +guid: 943b13c22974c4fe7ba4c6d1244a21d7 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml similarity index 94% rename from Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml rename to Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml index 3da493f..532071e 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/pangle_China/Editor/Dependencies.xml +++ b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml @@ -1,5 +1,5 @@ - + diff --git a/Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml.meta b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml.meta similarity index 75% rename from Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml.meta rename to Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml.meta index dab57c7..cfbd461 100644 --- a/Assets/AnyThinkAds/Plugins/Android/AndroidManifest.xml.meta +++ b/Assets/AnyThinkAds/Plugins/iOS/csj/Editor/Dependencies.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 62ceaa71d29d7bb4690d34b78b6d0fdf +guid: 5d946ae84d7ee45dea6ccc6a9175ea8f TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gdt/Editor/Dependencies.xml b/Assets/AnyThinkAds/Plugins/iOS/gdt/Editor/Dependencies.xml index b80b121..cf95f3c 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/gdt/Editor/Dependencies.xml +++ b/Assets/AnyThinkAds/Plugins/iOS/gdt/Editor/Dependencies.xml @@ -1,5 +1,5 @@ - + diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/ABUAdCsjAdapter b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/ABUAdCsjAdapter deleted file mode 100644 index e69de29..0000000 diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/ABUAdCsjAdapter.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/ABUAdCsjAdapter.meta deleted file mode 100644 index 18d8343..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/ABUAdCsjAdapter.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ffe6816d02a3a07489a09317e3168219 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers.meta deleted file mode 100644 index 47eb64c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 98583afab0445e54ea20d0735858101d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h deleted file mode 100644 index 05f266d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h +++ /dev/null @@ -1,12 +0,0 @@ -// -// ABUCsjAdapter.h -// Pods -// -// Created by bytedance on 2021/12/7. -// - -#ifndef ABUCsjAdapter_h -#define ABUCsjAdapter_h - - -#endif /* ABUCsjAdapter_h */ diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h.meta deleted file mode 100644 index 24d998d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Headers/ABUCsjAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2eba851f150d930479e3e4ee4c9a2ee9 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules.meta deleted file mode 100644 index f3a3d1b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 06d6800334349b247bf0a494688d6e4e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap deleted file mode 100644 index 8cb971c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module ABUAdCsjAdapter { - umbrella header "ABUAdCsjAdapter.h" - - export * - module * { export * } -} diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap.meta deleted file mode 100644 index 5bab3f8..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdCsjAdapter.framework/Modules/module.modulemap.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 55548a1cdeadaa947a0f6dc57c889a6f -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework.meta deleted file mode 100644 index d2dc986..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework.meta +++ /dev/null @@ -1,28 +0,0 @@ -fileFormatVersion: 2 -guid: 9afcca388cd6bb44689e178d50865c2a -folderAsset: yes -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/ABUAdSDK b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/ABUAdSDK deleted file mode 100644 index e69de29..0000000 diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/ABUAdSDK.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/ABUAdSDK.meta deleted file mode 100644 index cc838e3..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/ABUAdSDK.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 198d39cdbbd34f849826db113c148527 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers.meta deleted file mode 100644 index 80c45d3..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 52752c31733ff254d8486358ba9f54be -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h deleted file mode 100644 index c834954..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// ABUAdLoadInfo.h -// Ads-Mediation-CN -// -// Created by bytedance on 2022/1/12. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ABUAdLoadInfo : NSObject - -/// network的广告位ID -@property (nonatomic, copy, readonly) NSString *mediationRit; - -/// network的名称,同平台配置 -@property (nonatomic, copy, readonly) NSString *adnName; - -/// network的自定义名称,同平台配置,非自定义时为nil -@property (nonatomic, copy, readonly, nullable) NSString *customAdnName; - -/// 错误码 -@property (nonatomic, assign, readonly) NSInteger errCode; - -/// 错误描述 -@property (nonatomic, copy, readonly) NSString *errMsg; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h.meta deleted file mode 100644 index 3867025..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadInfo.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2bc3e4bf0070c1e4bbcc1a9ca7a091cf -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h deleted file mode 100644 index b403f06..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h +++ /dev/null @@ -1,133 +0,0 @@ -// -// Created by bytedance on 2021/6/24. -// - -#import - -#pragma mark - 通用参数 -/// 聚合广告请求ID,NSString -extern NSString *const ABUAdLoadingParamLinkID; - -/// 聚合广告位ID,NSString -extern NSString *const ABUAdLoadingParamMediationRitID; - -/// 场景ID,NSString -extern NSString *const ABUAdLoadingParamScenarioID; - -/// ADN广告位ID,NSString -extern NSString *const ABUAdLoadingParamMediaRitID; - -/// ADN广告位名称,平台配置名称,NSString -extern NSString *const ABUAdLoadingParamMediaName; - -/// 请求广告的渲染类型,NSNumber/NSInteger,0 无需区分渲染类型; 1 ADN提供渲染; 2 开发者自渲染 -extern NSString *const ABUAdLoadingParamExpressAdType; - -/// 是否请求模板广告的描述信息,NSDictionary -extern NSString *const ABUAdLoadingParamExpressAdTypeInfos; - -/// 媒体专属扩展参数, NSDictionary -extern NSString *const ABUAdLoadingParamMediaExtra; - -/// 广告位中混用其他类型代码位时的代码位类型,0-未混用 3-banner类型 4-信息流类型 -extern NSString *const ABUAdLoadingParamAdSubType; - -#pragma mark - 自定义补充 - -/// 自定义Adapter扩展参数, NSString,JSON格式 -extern NSString *const ABUAdLoadingParamCustomJson; - -/// 获取竞价类型,NSNumber/NSInteger,0-普通广告位 1-Client竞价广告位 100-P层数据位 -extern NSString *const ABUAdLoadingParamBiddingType; - -#pragma mark - Banner - -/// 期望广告尺寸,NSValue/CGSize -extern NSString *const ABUAdLoadingParamBNExpectSize; - -#pragma mark - 插屏广告 -/// 期望广告尺寸,NSValue/CGSize -extern NSString *const ABUAdLoadingParamISExpectSize; - -/// 是否是静音,NSNumber/BOOL -extern NSString *const ABUAdLoadingParamISIsMute; - -#pragma mark - 全屏视频 - -/// 是否是静音,NSNumber/BOOL -extern NSString *const ABUAdLoadingParamFVIsMute; - -#pragma mark - 激励视频 - -/// 是否是静音,NSNumber/BOOL -extern NSString *const ABUAdLoadingParamRVIsMute; - -/// 用户标识, NSString -extern NSString *const ABUAdLoadingParamRVUserID; - -/// 奖励名称, NSString -extern NSString *const ABUAdLoadingParamRVRewardName; - -/// 奖励金额,NSNumber/NSInteger -extern NSString *const ABUAdLoadingParamRVRewardAmount; - -/// 扩展信息, NSString -extern NSString *const ABUAdLoadingParamRVExtra; - -#pragma mark - Splash广告 -/// 期望ZoomOutView, NSNumber/BOOL -extern NSString *const ABUAdLoadingParamSPNeedZoomOutIfCan; - -/// 是否需要开屏卡片功能,NSNumber/BOOL -extern NSString *const ABUAdLoadingParamSPSupportCardView; - -/// 自定义底部视图,UIView -extern NSString *const ABUAdLoadingParamSPCustomBottomView; - -/// 期望广告尺寸,NSValue/CGSize -extern NSString *const ABUAdLoadingParamSPExpectSize; - -/// 开屏超时时间,NSNumber/NSInteger -extern NSString *const ABUAdLoadingParamSPTolerateTimeout; - -/// 开屏点击区域,NSNumber/NSInteger/ABUSplashButtonType -extern NSString *const ABUAdLoadingParamSPButtonType; - -#pragma mark - Native/Draw广告 -/// 期望广告图片尺寸,NSValue/CGSize -extern NSString *const ABUAdLoadingParamNAExpectImageSize; - -/// 期望广告尺寸,NSValue/CGSize -extern NSString *const ABUAdLoadingParamNAExpectSize; - -/// 是否是静音,NSNumber/BOOL -extern NSString *const ABUAdLoadingParamNAIsMute; - -/// 加载广告数量,NSNumber/NSInteger -extern NSString *const ABUAdLoadingParamNALoadAdCount; - -#pragma mark - 加载回调参数,即adapter开发者通过`- ***Ad:didLoadSuccess/Fail*** ext:`中NSDictionary回调的数据 - -/// 【可选】AND广告ECPM,NSString,单位分 -extern NSString *const ABUMediaAdLoadingExtECPM; - -/// 【可选】AND广告ECPMLevel,NSString -extern NSString *const ABUMediaAdLoadingExtECPMLevel; - -/// 【可选】ADN广告的加载标识,NSString -extern NSString *const ABUMediaAdLoadingExtRequestID; - -/// 【可选】AND广告唯一标识,NSString -extern NSString *const ABUMediaAdLoadingExtAdID; - -/// 【可选】AND广告创意唯一标识,NSString -extern NSString *const ABUMediaAdLoadingExtCreativeID; - -/// 【可选】直播间信息,NSDictionary -extern NSString *const ABUMediaAdLoadingExtLiveRoom; - -/// 【可选】商品信息,NSDictionary -extern NSString *const ABUMediaAdLoadingExtProduct; - -/// 【可选】卷信息,NSDictionary -extern NSString *const ABUMediaAdLoadingExtCoupon; diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h.meta deleted file mode 100644 index 86efa98..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdLoadingParams.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 61c3d8393d6a4374297bc9b74744c3f3 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h deleted file mode 100644 index 9fbb9f1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// ABUAdSDK.h -// ABUAdSDK -// -// Created by wangchao on 2020/2/21. -// Copyright © 2020 bytedance. All rights reserved. -// - -#import - -//! Project version number for ABUAdSDK. -FOUNDATION_EXPORT double ABUAdSDKVersionNumber; - -//! Project version string for ABUAdSDK. -FOUNDATION_EXPORT const unsigned char ABUAdSDKVersionString[]; - -#pragma mark - 基本 -#import "ABUAdSDKManager.h" -#import "ABUPersonaliseConfigAdapter.h" -#import "ABURitInfo.h" - -#pragma mark - 隐私 -#import "ABUPrivacyConfig.h" - -#pragma mark - 广告类型 -#import "ABUBannerAd.h" -#import "ABURewardedVideoAd.h" -#import "ABUFullscreenVideoAd.h" -#import "ABUSplashAd.h" -#import "ABUNativeAdsManager.h" -#import "ABUInterstitialAd.h" -#import "ABUInterstitialProAd.h" -#import "ABUSplashUserData.h" -#import "ABUDrawAdsManager.h" - -#pragma mark - adapter 开发专用 -#import "ABUAdapterRegister.h" -#import "ABUAdLoadingParams.h" -#import "ABUMediatedNativeAd.h" -#import "ABUMediaBidResult.h" - -#import "ABUCustomBannerAdapter.h" -#import "ABUCustomRewardedVideoAdapter.h" -#import "ABUCustomFullscreenVideoAdapter.h" -#import "ABUCustomDrawAdapter.h" -#import "ABUCustomNativeAdapter.h" -#import "ABUCustomSplashAdapter.h" -#import "ABUCustomInterstitialAdapter.h" -#import "ABUCanvasView.h" -#import "ABUDislikeReason.h" - -#pragma mark - 辅助 -#import "ABUVersion.h" -#import "ABUDictionary.h" -#import "UIWindow+GroMore.h" -#import "ABUViewTracker.h" -#import "ABUViewTrackerHelper.h" -#import "ABUAdViewWitnessChecker.h" -#import "ABUVideoAdReporter.h" -#import "ABUDislikeReporter.h" diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h.meta deleted file mode 100644 index fd11836..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDK.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 80a26684850acbf429a9787bc4239f83 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h deleted file mode 100644 index 33474d1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h +++ /dev/null @@ -1,119 +0,0 @@ -// -// ABUADSDK_const_h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/19. -// - -#ifndef ABUADSDK_const_h -#define ABUADSDK_const_h - -#pragma mark - 全屏视频、激励视频展示扩展 - -#pragma mark 扩展展示参数字段 ** swift请勿直接使用枚举,应使用rawValue -/// ABUShowExtroInfoKey, type of scene, only used for pangle SDK now.And the value of key see ABURitSceneType ABURitSceneType -static NSString * ABUShowExtroInfoKeySceneType = @"ABUShowExtroInfoKeySceneType"; - -/// scene description, the description defined by the developer, which needs to be assigned when ABUShowExtroInfoKeySceneType = 0 -static NSString * ABUShowExtroInfoKeySceneDescription = @"ABUShowExtroInfoKeySceneDescription"; - -#pragma mark 扩展展示参数补充 - -typedef NS_ENUM (NSInteger, ABURitSceneType) { - // custom - ABURitSceneType_custom = 0, - // “home_open_bonus”, Login/open rewards (login, sign-in, offline rewards doubling, etc.) - ABURitSceneType_home_open_bonus = 1, - // "home_svip_bonus", Special privileges (VIP privileges, daily rewards, etc.) - ABURitSceneType_home_svip_bonus = 2, - // "home_get_props", Watch rewarded video ad to gain skin, props, levels, skills, etc - ABURitSceneType_home_get_props = 3, - // "home_try_props", Watch rewarded video ad to try out skins, props, levels, skills, etc - ABURitSceneType_home_try_props = 4, - // "home_get_bonus", Watch rewarded video ad to get gold COINS, diamonds, etc - ABURitSceneType_home_get_bonus = 5, - // "home_gift_bonus", Sweepstakes, turntables, gift boxes, etc - ABURitSceneType_home_gift_bonus = 6, - // "game_start_bonus", Before the opening to obtain physical strength, opening to strengthen, opening buff, task props - ABURitSceneType_game_start_bonus = 7, - // "geme_reduce_waiting", Reduce wait and cooldown on skill CD, building CD, quest CD, etc - ABURitSceneType_game_reduce_waiting = 8, - // "game_more_opportunities", More chances (resurrect death, extra game time, decrypt tips, etc.) - ABURitSceneType_game_more_opportunities = 9, - // "game_finish_rewards", Settlement multiple times/extra bonus (completion of chapter, victory over boss, first place, etc.) - ABURitSceneType_game_finish_rewards = 10, - // "game_gift_bonus", The game dropped treasure box, treasures and so on - ABURitSceneType_game_gift_bonus = 11 -}; - -// 开屏点击区域类型 -typedef NS_ENUM(NSInteger, ABUSplashButtonType) { - ABUSplashButtonTypeFullScreen = 1, // The whole area of splash view will respond to click event - ABUSplashButtonTypeDownloadBar = 2 // The area of download bar in splash view will respond to click event -}; - -#pragma mark - 兼容处理 -#import "ABUDislikeWords.h" - -/// 三方Adn枚举 -typedef NS_ENUM (NSInteger, ABUAdnType) { - ABUAdnNoPermission = -3, // 无权限访问 - ABUAdnNoData = -2, // 暂时无真实数据,未获取到最佳广告,一般在未展示之前提前调用 - ABUAdnNone = 0, // 未知adn - ABUAdnPangle = 1, // pangle -> 穿山甲adn - ABUAdnAdmob = 2, // admob -> 谷歌Admob - ABUAdnGDT = 3, // gdt -> 腾讯广点通adn - ABUAdnMTG = 4, // mintegral -> Mintegral adn - ABUAdnUnity = 5, // unity -> unity adn - ABUAdnBaidu = 6, // baidu -> 百度adn - ABUAdnKs = 7, // ks -> 快手Adn - ABUAdnSigmob = 8, // sigmob -> Sigmob adn - ABUAdnKlevin = 9, // klevin -> Klevin游可赢 -}; - -// MSDK目前实际只有1,2,3,5,7,8 -typedef NS_ENUM (NSInteger, ABUAdSlotAdType) { - ABUAdSlotAdTypeUnknown = 0, - ABUAdSlotAdTypeBanner = 1, // banner ads - ABUAdSlotAdTypeInterstitial = 2, // interstitial ads - ABUAdSlotAdTypeSplash = 3, // splash ads - ABUAdSlotAdTypeFeed = 5, // feed ads - ABUAdSlotAdTypeRewardVideo = 7, // rewarded video ads - ABUAdSlotAdTypeFullscreenVideo = 8, // full-screen video ads - ABUAdSlotAdTypeDraw = 9 // draw ads -}; - -typedef NS_ENUM(NSInteger, ABUAdSlotPosition) { - ABUAdSlotPositionTop = 1, - ABUAdSlotPositionBottom = 2, - ABUAdSlotPositionFeed = 3, - ABUAdSlotPositionMiddle = 4, // for interstitial ad only - ABUAdSlotPositionFullscreen = 5, -}; - -typedef NS_ENUM(NSInteger, ABUBiddingType) { - ABUBiddingTypeUnknown = -1, - ABUBiddingTypeNormal = 0, - ABUBiddingTypeClient = 1, - ABUBiddingTypeServer = 2, - ABUBiddingTypeMulti = 3, - ABUBiddingTypePriority = 100 -}; - - -#pragma mark - 其他 - -#if defined(__has_attribute) -#if __has_attribute(deprecated) -#define ABU_DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s))) -#define ABU_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) -#else -#define ABU_DEPRECATED_MSG_ATTRIBUTE(s) -#define ABU_DEPRECATED_ATTRIBUTE -#endif -#else -#define ABU_DEPRECATED_MSG_ATTRIBUTE(s) -#define ABU_DEPRECATED_ATTRIBUTE -#endif - -#endif /* ABUADSDK_const_h */ diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h.meta deleted file mode 100644 index 925d71c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKConst.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bd464f75ef99d134f895a1f0c068e79f -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h deleted file mode 100644 index a2cb416..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h +++ /dev/null @@ -1,77 +0,0 @@ -// -// ABUSDKManager.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/20. -// - -#import -#import "ABUUserConfig.h" -#import "ABUUserInfoForSegment.h" -#import "ABUAdSDKConst.h" - -@class ABUBaseAd; -NS_ASSUME_NONNULL_BEGIN - -__attribute__((objc_subclassing_restricted)) -/// SDK管理类 -@interface ABUAdSDKManager : NSObject - -/// GroMore SDK 版本 -@property (readonly, class) NSString *SDKVersion; - -/// 初始化GroMore方法,不初始化将无法使用GroMore的相关功能 -/// @param appId 在GroMore注册的应用ID -/// @param config 初始化配置回调 -+ (void)setupSDKWithAppId:(NSString *)appId config:(ABUUserConfig *(^)(ABUUserConfig *))config; - -/// 获取初始化时使用的应用ID -+ (NSString *)appID; - -/// 配置用户分组信息,可随时更新,但用户分组信息更新将触发配置重新加载,请谨慎使用 -/// @param userInfo 分组信息 -+ (void)setUserInfoForSegment:(nonnull ABUUserInfoForSegment *)userInfo; - -/// 获取当前主题模式 -+ (ABUAdSDKThemeStatus)themeStatus; - -/// 获取各类补充信息 -+ (NSDictionary *)getGMSDKExtraInfo; - -/// 获取配置是否已经加载 -+ (BOOL)configDidLoad; - -/// 添加配置加载成功回调,该回调会主动触发配置加载,并且仅会回调一次,监听者从内存总消失则不会回调 -/// @param observer 配置加载监听者,不会造成强引用,请放心使用 -/// @param action 加载成功回调 -+ (void)addConfigLoadSuccessObserver:(id _Nonnull)observer withAction:(void(^_Nonnull)(id _Nonnull observer))action; - -/// SDK init后更新extraDeviceMap,主要用于初始化时开发者自己的参数还未生成,需后续传入;!!!该接口会覆盖初始化传入的extraDeviceMap,开发者需自己做增量处理 -/// @param extraDeviceMap 额外信息 -+ (void)updateExtraDeviceMap:(NSDictionary *)extraDeviceMap; - -/// 旧版本兼容,初始化GroMore方法,请在初始化配置完成后调用 -/// @param appID 在GroMore注册的应用ID -+ (void)setAppID:(NSString *)appID ABU_DEPRECATED_MSG_ATTRIBUTE("Use setupSDKWithAppId:config: instead"); - -/// 旧版本兼容,设置扩展设备信息,如不了解该功能,请勿使用。 -/// @param extraDeviceStr 扩展设备信息,如@"[{\"device_id\":\"62271333038\"}]" -+ (void)setExtDeviceData:(NSString *)extraDeviceStr ABU_DEPRECATED_MSG_ATTRIBUTE("Use setupSDKWithAppId:config: or updateExtraDeviceMap: instead"); - -/// 旧版本兼容,配置日志信息 -/// @param level 日志信息级别,ABUAdSDKLogLevelNone为不开启日志,其他值为开启 -/// @param language 日志语言,已无效 -+ (void)setLoglevel:(ABUAdSDKLogLevel)level language:(ABUAdSDKLogLanguage)language ABU_DEPRECATED_MSG_ATTRIBUTE("Use setupSDKWithAppId:config: instead"); - -/// 设置广告主题,扩展暗黑模式 -+ (void)setThemeStatus:(ABUAdSDKThemeStatus)themeStatus; - -/// 触发首次预缓存,针对特定广告位 -/// @param infos 广告对象 -/// @param interval 指定每轮请求的时间间隔, 允许时间范围:1-10 -/// @param concurrent 并发请求的广告数, 允许个数范围:1-20 -+ (void)preloadAdsWithInfos:(NSArray<__kindof ABUBaseAd *> *)infos andInterval:(NSInteger)interval andConcurrent:(NSInteger)concurrent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h.meta deleted file mode 100644 index cec9901..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdSDKManager.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cebfabe6c5f6bcd4c9fd0a8c08cce009 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h deleted file mode 100644 index 264d38d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// ABUAdViewWitnessChecker.h -// ABUAdSDK -// -// Created by wangchaop on 22/06/2020. -// Copyright © 2017 bytedance. All rights reserved. -// - -#import -#import "ABUViewTracker.h" - -@interface ABUAdViewWitnessChecker : NSObject - -+ (instancetype)sharedInstance; - -+ (NSTimeInterval)getWitnessTimeForAd:(id)ad; - -+ (void)setWitnessTimeForAd:(id)ad; - -- (void)removeAd:()ad; - -- (void)addViewTracker:(id)tracker; - -- (void)removeAllTracker; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h.meta deleted file mode 100644 index 633746a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdViewWitnessChecker.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7bdce9a34f4367044bf34634e450102f -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h deleted file mode 100644 index cfc206c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// ABUAdapterRegister.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/24. -// - -#import -#import "ABUCustomConfigAdapter.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef id_Nonnull(ABUSameAdnAdapterBattleFunction)(NSArray> *); - -FOUNDATION_EXPORT void ABUSameAdnAdapterBattleFunctionRegister(ABUSameAdnAdapterBattleFunction *function); - -#if !defined(ABU_ADAPTER_REGISTER) -#define ABU_ADAPTER_REGISTER(__adn_key__,__config_class__) \ -@implementation ABUAdapterRegister (__config_class__) \ --(id)__ABU__##__adn_key__{ \ -return (id)[[__config_class__ alloc] init]; \ -}\ -@end -#endif - -@interface ABUAdapterRegister : NSObject - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h.meta deleted file mode 100644 index 41ac9ca..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRegister.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b27e911d3b6e05c4998b810400bacb2b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h deleted file mode 100644 index a7e4684..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// ABUAdapterRewardAdInfo.h -// ABUAdSDK -// -// Created by bytedance on 2021/8/16. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 验证失败的原因----string -extern NSString *const ABUAdapterRewardAdCustomDataReasonKey; - -/// 无法完成验证的错误码----number -extern NSString *const ABUAdapterRewardAdCustomDataErrorCodeKey; - -/// 无法完成验证的错误原因----string,包括网络错误、服务端无响应、服务端无法验证等 -extern NSString *const ABUAdapterRewardAdCustomDataErrorMsgKey; - -/// 奖励类型,0:基础奖励 1:进阶奖励-互动 2:进阶奖励-超过30s的视频播放完成----number -/// 目前支持返回该字段的adn:csj -/// @warning: GroMore的S2S的验证暂不支持 -extern NSString *const ABUAdapterRewardAdCustomDataRewardTypeKey; - -/// 建议奖励百分比, 基础奖励为1,进阶奖励为0.0 ~ 1.0,开发者自行换算----number -/// 目前支持返回该字段的adn:csj -/// @warning: GroMore的S2S的验证暂不支持 -extern NSString *const ABUAdapterRewardAdCustomDataRewardProposeKey; - - -/// 激励视频奖励信息,适用于ADN的奖励验证和GroMore的S2S奖励验证 -@interface ABUAdapterRewardAdInfo : NSObject - -/// adn定义的奖励id -@property (nonatomic, copy, nullable) NSString *rewardId; - -/// 发放奖励的名称 -@property (nonatomic, copy, nullable) NSString *rewardName; - -/// 发放奖励的金额 -@property (nonatomic, assign) NSInteger rewardAmount; - -/// 交易的唯一标识 -@property (nonatomic, copy, nullable) NSString *tradeId; - -/// 是否验证通过 -@property (nonatomic, assign) BOOL verify; - -/// 验证奖励发放的媒体名称,官方支持的ADN名称详见`ABUAdnType`注释部分,自定义ADN名称同平台配置 -@property (nonatomic, copy, nullable) NSString *adnName; - -/// 其他数据信息,包括但不限于错误信息,固定字段定义见文件上方 -@property (nonatomic, copy, nullable) NSDictionary *customData; - -/// 是否是通过GroMore的S2S的验证 -- (BOOL)verifyByGroMoreS2S; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h.meta deleted file mode 100644 index ce2334e..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUAdapterRewardAdInfo.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 15a94ca9af9d5f24db9a6d4db687bf0e -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h deleted file mode 100644 index dc143e7..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h +++ /dev/null @@ -1,122 +0,0 @@ -// -// ABUNewBannerAd.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/28. -// - -#import "ABUBaseAd.h" -#import "ABUAdSDKConst.h" -#import "ABUCanvasView.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUBannerAd; - -/// banner广告代理协议 -@protocol ABUBannerAdDelegate -@optional - -/// banner广告加载成功回调 -/// @param bannerAd 广告操作对象 -/// @param bannerView 广告视图 -- (void)bannerAdDidLoad:(ABUBannerAd *)bannerAd bannerView:(UIView *)bannerView; - -/// 广告加载失败回调 -/// @param bannerAd 广告操作对象 -/// @param error 错误信息 -- (void)bannerAd:(ABUBannerAd *)bannerAd didLoadFailWithError:(NSError *_Nullable)error; - -/// 广告加载成功后为「混用的信息流自渲染广告」时会触发该回调,提供给开发者自渲染的时机 -/// @param bannerAd 广告操作对象 -/// @param canvasView 携带物料的画布,需要对其内部提供的物料及控件做布局及设置UI -/// @warning 轮播开启时,每次轮播到自渲染广告均会触发该回调,并且canvasView为其他回调中bannerView的子控件 -- (void)bannerAdNeedLayoutUI:(ABUBannerAd *)bannerAd canvasView:(ABUCanvasView *)canvasView; - -/// 广告展示回调 -/// @param bannerAd 广告操作对象 -/// @param bannerView 广告视图 -- (void)bannerAdDidBecomeVisible:(ABUBannerAd *)bannerAd bannerView:(UIView *)bannerView; - -/// 即将弹出广告详情页 -/// @param ABUBannerAd 广告操作对象 -/// @param bannerView 广告视图 -- (void)bannerAdWillPresentFullScreenModal:(ABUBannerAd *)ABUBannerAd bannerView:(UIView *)bannerView; - -/// 详情广告页将要关闭 -/// @param ABUBannerAd 广告操作对象 -/// @param bannerView 广告视图 -- (void)bannerAdWillDismissFullScreenModal:(ABUBannerAd *)ABUBannerAd bannerView:(UIView *)bannerView; - -/// 广告点击事件回调 -/// @param ABUBannerAd 广告操作对象 -/// @param bannerView 广告视图 -- (void)bannerAdDidClick:(ABUBannerAd *)ABUBannerAd bannerView:(UIView *)bannerView; - -/// 广告关闭回调 -/// @param ABUBannerAd 广告操作对象 -/// @param bannerView 广告视图 -/// @param filterWords 不喜欢广告的原因,由adapter开发者配置,可能为空 -- (void)bannerAdDidClosed:(ABUBannerAd *)ABUBannerAd bannerView:(UIView *)bannerView dislikeWithReason:(NSArray *_Nullable)filterWords; - -@end - -/// banner广告操作类 -@interface ABUBannerAd : ABUBaseAd - -/// banner广告操作对象构建 -/// @param adUnitID 广告位ID -/// @param rootViewController 页面跳转控制器 -/// @param adSize 广告尺寸 -- (instancetype _Nonnull)initWithAdUnitID:(NSString *_Nonnull)adUnitID - rootViewController:(UIViewController *_Nonnull)rootViewController - adSize:(CGSize)adSize; - -/// 广告代理回调对象 -@property (nonatomic, weak) id delegate; - -/// 广告尺寸,构造方法中传递的尺寸值 -@property (nonatomic, assign, readonly) CGSize adSize; - -/// 实际的自动轮播定时间隔,有效值在30-120之间 -@property (nonatomic, assign, readonly) NSInteger autoRefreshTime __attribute__((unavailable("This attribute is invalid, get the value of refreshTime"))); - -/// 平台设置的Banner轮播时间间隔, 范围[10, 180], 其他值按0处理, 默认为0,单位秒 -@property (nonatomic, assign, readonly) NSInteger refreshTime; - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (nullable ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -/// 不再使用加载成功后回调的view时,可调用该方法释放占用的内存 -- (void)destory; - -@end - - -/// banner广告位下混用了信息流代码位 -@interface ABUBannerAd (mixture) - -/// 是否使用模板广告,只对支持模板广告的第三方SDK有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL getExpressAdIfCan; - -/// 图片大小,包括视频媒体的大小设定 -@property (nonatomic, assign) CGSize imageOrVideoSize; - -/// 是否静音播放视频,是否真实静音由adapter确定,默认为YES,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL startMutedIfCan; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h.meta deleted file mode 100644 index b37f569..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBannerAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 35c83abf4ae83dd44a04a02555248409 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h deleted file mode 100644 index 70406ce..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// ABUBaseAd.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/21. -// - -#import -#import -#import "ABUAdSDKConst.h" -#import "ABURitInfo.h" -#import "ABUAdLoadInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 基类广告 -@interface ABUBaseAd : NSObject - -/// 广告位ID -@property (nonatomic, copy, readonly) NSString *rit; - -/// 广告场景ID -@property (nonatomic, copy, nullable) NSString *scenarioID; - -/// 广告是否加载中 -@property (nonatomic, assign, readonly) BOOL isLoading; - -/// 添加参数 -/// @param param 参数值 -/// @param key 参数key -- (void)addParam:(id)param withKey:(NSString *)key; - -/// 加载广告 -- (void)loadAdData; - -/// 一次waterfall中各adn代码位加载广告失败原因,建议调用时机:展示广告时/超时时/全部返回报错时;返回nil表示一次加载无代码位加载失败或其加载无响应 -- (NSArray *)waterfallFillFailMessages; - -/// 同`waterfallFillFailMessages`,返回数据为`ABUAdLoadInfo`类型 -- (NSArray *)getAdLoadInfoList; - -/// 在Bididing结束后是否回调ADN结果,默认NO -@property (nonatomic, assign) BOOL bidNotify; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h.meta deleted file mode 100644 index f4379c2..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUBaseAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 40b992dd501cfbc4799ef61b07c98b47 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h deleted file mode 100644 index e9fe5ab..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// ABUCanvasView.h -// Ads-Mediation-CN -// -// Created by ByteDance on 2022/4/6. -// - -#import -#import "ABUMediatedNativeAd.h" -#import "ABUMediatedNativeAdData.h" - -NS_ASSUME_NONNULL_BEGIN - - -@interface ABUCanvasView : UIView - -- (instancetype)initWithNativeAd:(ABUMediatedNativeAd *)nativeAd adapter:(id)adapter; - -/// 非模板Native广告的物料数据,模板广告时为nil -@property (nonatomic, strong, readonly, nullable) ABUMaterialMeta *data; - -@end - -/// native广告视图类,非模板部分 -/// 📢 以下描述需开发者自己渲染UI内容处,存在部分AND已强制处理或adapter代为处理,外部开发者需注意 -@interface ABUCanvasView (Native) - -/// 是否支持自定义事件按钮,如果为YES,开发者可以配置 callToActionBtn 的UI数值,默认为YES -@property (nonatomic, assign, readonly) BOOL hasSupportActionBtn; - -/// 广告标题,需要开发者根据广告物料自己指定展示内容 -@property (nonatomic, strong, readonly, nonnull) UILabel *titleLabel; - -/// 广告描述,需要开发者根据广告物料自己指定展示内容 -@property (nonatomic, strong, readonly, nonnull) UILabel *descLabel; - -/// 广告图标,可能不存在,需要开发者根据广告物料自己指定展示内容 -@property (nonatomic, strong, nullable) UIImageView *iconImageView; - -/// 广告大图,需要开发者根据广告物料自己指定展示内容,系统会自动创建,但内容需开发者自行校验 -@property (nonatomic, strong, readonly, nonnull) UIImageView *imageView; - -/// Ad CTA button. Need to be assigned from a data(ABUMaterialMeta), and need to be add to self(ABUNativeAdView). - -/// 广告详情/下载按钮,可能不存在,文案内容需要开发者根据广告物料自己获取 -@property (nonatomic, strong, readonly, nonnull) UIButton *callToActionBtn; - -/// 广告商视图,可能不存在,开发者可自行赋值处理 -@property (nonatomic, strong, nullable) UIView *advertiserView; - -/// 广告关闭按钮,可能不存在,开发者需自行处理响应事件 -@property (nonatomic, strong, nullable) UIButton *dislikeBtn; - -/// 广告LOGO视图,可能不存在,需要开发者根据广告物料自己指定展示内容 -@property (nonatomic, strong, nullable) UIView *adLogoView; - -/// 媒体视图,即视频广告的视频图层,非视频广告不存在该视图 -@property (nonatomic, strong, readonly, nullable) UIView *mediaView; - -/// 注册可点击区域,由GroMore透传数据,是否生效由adapter 和 adn 决定 -/// @param views 可响应点击操作的视图 -- (void)registerClickableViews:(nullable NSArray *)views; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h.meta deleted file mode 100644 index 0fc0880..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCanvasView.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 0255dd3e15250cb4db4cd941266b02f9 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h deleted file mode 100644 index c06554f..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// ABUCardViewProperty.h -// Ads-Mediation-CN -// -// Created by ByteDance on 2022/5/27. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ABUCardViewProperty : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h.meta deleted file mode 100644 index f9ac414..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCardViewProperty.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: fe63214859dc65c4485f703001687989 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h deleted file mode 100644 index 3b15841..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// ABUCustomAdapter.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/27. -// - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomConfigAdapter; -@class ABUMediaBidResult; - -typedef NS_ENUM(NSInteger, ABUMediatedAdStatusValue) { - ABUMediatedAdStatusValueDeny = -1, - ABUMediatedAdStatusValueUnknown = 0, - ABUMediatedAdStatusValueSure = 1, -}; - -/// adn广告状态 -typedef struct { - ABUMediatedAdStatusValue isReady; - ABUMediatedAdStatusValue unexpired; - ABUMediatedAdStatusValue valid; -} ABUMediatedAdStatus; - -extern const ABUMediatedAdStatus ABUMediatedAdStatusUnknown; - -extern const ABUMediatedAdStatus ABUMediatedAdStatusNormal; - -static inline -BOOL ABUMediatedAdStatusEqualsTo(ABUMediatedAdStatus aStatus, ABUMediatedAdStatus anotherStatus) { - return aStatus.isReady == anotherStatus.isReady && - aStatus.unexpired == anotherStatus.unexpired && - aStatus.valid == anotherStatus.valid; -} - -static inline -ABUMediatedAdStatus ABUMediatedAdStatusMake(ABUMediatedAdStatusValue isReady, ABUMediatedAdStatusValue unexpired, ABUMediatedAdStatusValue valid) { - ABUMediatedAdStatus status = {ABUMediatedAdStatusValueUnknown, ABUMediatedAdStatusValueUnknown , ABUMediatedAdStatusValueUnknown}; - status.isReady = isReady; - status.unexpired = unexpired; - status.valid = valid; - return status; -} - -/// 自定义adapter广告类型基本协议 -@protocol ABUCustomAdapter -@optional - -- (NSString *)serverBiddingTokenWithParams:(NSDictionary *)params error:(NSError **)error; - -/// 需要传递token以外值时,使用此方法 -- (NSString *)serverBiddingTokenWithParams:(NSDictionary *)params otherInfo:(NSMutableDictionary *)otherInfo error:(NSError **)error; - -/// 当前广告有广告正在展示时是否允许进行预加载广告,未实现则为NO。 -- (BOOL)enablePreloadWhenCurrentIsDisplay; - -/// 回调客户端竞价结果,比价成功时回传成功,比价失败、返回超时或价格低于竞价底价时回传失败 -/// @param result bid结果对象 -/// @warning 1.创建广告时需设置bidNotify属性为YES才会触发该回调 -/// 2.adn广告load失败不触发该回调,如需回传adn竞价结果,请在load失败处自行处理 -/// 3.信息流加载多条会触发多次,返回每条比价结果 -- (void)didReceiveBidResult:(nonnull ABUMediaBidResult *)result; - -/// 开发者无需实现,系统自动生成 -@property (nonatomic, assign) BOOL isCustomAdapter; - -/// 开发者无需实现,系统自动生成 -@property (nonatomic, strong) id configAdapter; - -@end - -@protocol ABUBaseCustomAdapter - -- (id)bridge; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h.meta deleted file mode 100644 index ca3180f..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f7455ab8f54a75645b4c46c061f62e5b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h deleted file mode 100644 index 6306950..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// ABUCustomAdapterVersion.h -// ABUAdSDK -// -// Created by bytedance on 2021/9/30. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class ABUCustomAdapterVersion; - -/// 自定义adapter协议版本,版本号 1.0 -extern ABUCustomAdapterVersion * const ABUCustomAdapterVersion1_0; -/// 自定义adapter协议版本,版本号 1.1 -extern ABUCustomAdapterVersion * const ABUCustomAdapterVersion1_1; - -/// 自定义adapter使用的协议版本,请开发者实现/更新自定义adapter时使用最新版本的版本号即可 -/// GroMore会根据实际情况控制adapter是否可用,[及时更新] -@interface ABUCustomAdapterVersion : NSString @end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h.meta deleted file mode 100644 index 8f0d65a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomAdapterVersion.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cbbb1f82bbcced442836142ed99e60b5 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h deleted file mode 100644 index e371716..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// ABUCustomBannerAdapter.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/27. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomBannerAdapterBridge.h" -#import "ABUCustomNativeAdapter.h" -@protocol ABUCustomBannerMixNativeAdapter; - -NS_ASSUME_NONNULL_BEGIN - -/// 自定义banner广告adapter协议 -@protocol ABUCustomBannerAdapter - -/// 必要,加载banner广告方法 -/// @param slotID adn的广告位ID -/// @param adSize 广告展示尺寸 -/// @param parameter 广告加载参数 -- (void)loadBannerAdWithSlotID:(NSString *)slotID andSize:(CGSize)adSize parameter:(nullable NSDictionary *)parameter; - -/// 当前加载的广告的状态 -- (ABUMediatedAdStatus)mediatedAdStatus; - -@optional -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -@end - -/// 当Banner广告位下混用信息流代码位,请实现如下协议方法 -@protocol ABUCustomBannerMixNativeAdapter - -@optional - -/// 注册容器和可点击区域 -/// @param containerView 容器视图 -/// @param views 可点击视图组 -- (void)registerContainerView:(__kindof UIView *)containerView andClickableViews:(NSArray<__kindof UIView *> *)views forNativeAd:(id)nativeAd; - -@end - - - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h.meta deleted file mode 100644 index 5b828c1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7fc5db4ebe3850e4a86cd492c9c0de10 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h deleted file mode 100644 index 62a77d4..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// ABUCustomBannerAdapterBridge.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/27. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUDislikeWords.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomBannerAdapter; - -/// 自定义banner广告的回调代理协议 -@protocol ABUCustomBannerAdapterBridge -@optional - -/// 在广告加载成功时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -/// @param ext 回传信息 -- (void)bannerAd:(id)adapter didLoad:(UIView *)bannerView ext:(NSDictionary *)ext; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -/// @param ext 回传信息 -- (void)bannerAd:(id)adapter didLoadFailWithError:(NSError *_Nullable)error ext:(NSDictionary *)ext; - -/// 在广告已经展示的时候调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -- (void)bannerAdDidBecomeVisible:(id)adapter bannerView:(UIView *)bannerView; - -/// 在广告弹出详情页或者展示展示appstore时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -- (void)bannerAdWillPresentFullScreenModal:(id)adapter bannerView:(UIView *)bannerView; - -/// 在广告关闭详情页或者appstore时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -- (void)bannerAdWillDismissFullScreenModal:(id)adapter bannerView:(UIView *)bannerView; - -/// 在广告触发点击事件时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -- (void)bannerAdDidClick:(id)adapter bannerView:(UIView *)bannerView; - -/// 在广告关闭时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param bannerView 广告视图 -/// @param filterWords 用户手动关闭时的关闭原因描述 -- (void)bannerAd:(id)adapter bannerView:(UIView *)bannerView didClosedWithDislikeWithReason:(NSArray *_Nullable)filterWords; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h.meta deleted file mode 100644 index fa970db..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomBannerAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c73298e4085ec4f4383ad09b37217d51 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h deleted file mode 100644 index bbc7596..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// ABUCustomConfigAdapter.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/27. -// - -#import -#import "ABUSdkInitConfig.h" - -#import "ABUCustomBannerAdapter.h" -#import "ABUCustomInterstitialAdapter.h" -#import "ABUCustomRewardedVideoAdapter.h" -#import "ABUCustomFullscreenVideoAdapter.h" -#import "ABUCustomDrawAdapter.h" -#import "ABUCustomSplashAdapter.h" -#import "ABUCustomNativeAdapter.h" -#import "ABUCustomAdapterVersion.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 自定义adapter的基本配置协议 -@protocol ABUCustomConfigAdapter -@required - -/// 该自定义adapter是基于哪个版本实现的,填写编写时的最新值即可,GroMore会根据该值进行兼容处理 -- (ABUCustomAdapterVersion *)basedOnCustomAdapterVersion; - -/// adn初始化方法 -/// @param initConfig 初始化配置,包括appid、appkey基本信息和部分用户传递配置 -- (void)initializeAdapterWithConfiguration:(ABUSdkInitConfig *_Nullable)initConfig; - -/// adapter的版本号 -- (NSString *_Nonnull)adapterVersion; - -/// adn的版本号 -- (NSString *_Nonnull)networkSdkVersion; - -/// 隐私权限更新,用户更新隐私配置时触发,初始化方法调用前一定会触发一次 -- (void)didRequestAdPrivacyConfigUpdate:(NSDictionary *)config; - -/// 收到配置更新请求时触发,如主题更新,初始化时设定配置不会触发,具体修改项需自行校验 -- (void)didReceiveConfigUpdateRequest:(ABUUserConfig *)config; - -@optional - -/// 无需实现 -@property (nonatomic, assign) BOOL isCustomAdapter; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h.meta deleted file mode 100644 index 5e8f2c9..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomConfigAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f389eff8bc6300f41a8a754ce4b736aa -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h deleted file mode 100644 index 4f261ed..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// ABUCustomDrawVideoAdapte.h -// Ads-Mediation-CN -// -// Created by heyinyin on 2022/3/31. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomDrawAdapterBridge.h" -#import "ABUVideoAdReportSupport.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 自定义Draw视频广告的adapter广告协议 -@protocol ABUCustomDrawAdapter - -/// 加载广告的方法 -/// @param slotID adn的广告位ID -/// @param parameter 广告加载的参数 -- (void)loadDrawAdWithSlotID:(NSString *)slotID andSize:(CGSize)size andParameter:(NSDictionary *)parameter; - -@optional -/// 渲染广告,为模板广告时会回调该方法,需对广告进行渲染 -/// @param expressAdView 模板广告 -- (void)renderForExpressAdView:(UIView *)expressAdView; - -/// 为模板广告设置控制器 -/// @param viewController 控制器 -/// @param expressAdView 模板广告 -- (void)setRootViewController:(UIViewController *)viewController forExpressAdView:(UIView *)expressAdView; - -/// 为非模板广告设置控制器 -/// @param viewController 控制器 -/// @param drawAd 非模板广告 -- (void)setRootViewController:(UIViewController *)viewController forDrawAd:(id)drawAd; - -/// 注册容器和可点击区域 -/// @param containerView 容器视图 -/// @param views 可点击视图组 -- (void)registerContainerView:(__kindof UIView *)containerView andClickableViews:(NSArray<__kindof UIView *> *)views forDrawAd:(id)drawAd; - -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -/// 当前加载的广告的状态,draw模板广告 -- (ABUMediatedAdStatus)mediatedAdStatusWithExpressView:(UIView *)view; - -/// 当前加载的广告的状态,draw非模板广告 -- (ABUMediatedAdStatus)mediatedAdStatusWithMediatedAd:(ABUMediatedNativeAd *)ad; - -/// 广告视图即将被展示回调,只会调用一次 -/// @param expressAdView 模板广告视图 -/// @param drawAd GroMore包装的广告数据 -- (void)adViewWillAddToSuperViewWithExpressAdView:(__kindof UIView *)expressAdView orMediatedAd:(ABUMediatedNativeAd *)drawAd; - -/// 上报dislike的原因,仅限非模板广告自定义关闭按钮时使用 -/// @param ad GroMore包装的非模板广告数据 -/// @param reasons dislike的原因。数据基于ADN提供的原因修改 -- (void)reportDislikeAd:(ABUMediatedNativeAd *)ad withReasons:(NSArray *)reasons; - -- (void)reportVideoEvent:(ABUVideoAdEvent)event forAd:(ABUMediatedNativeAd *)ad withParameters:(NSDictionary *)parameters; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h.meta deleted file mode 100644 index 8b50a0a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 36693c04d77623b4db5e14a1a739ee5f -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h deleted file mode 100644 index cacb003..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h +++ /dev/null @@ -1,96 +0,0 @@ -// -// ABUCustomDrawAdapterBridge.h -// Ads-Mediation-CN -// -// Created by heyinyin on 2022/3/31. -// - -#import -#import "ABUMediatedNativeAd.h" -#import "ABUPlayerPlayState.h" - -NS_ASSUME_NONNULL_BEGIN -@protocol ABUCustomDrawAdapter; - -/// 自定义Draw视频广告的adapter的回调协议 -@protocol ABUCustomDrawAdapterBridge - -@optional -/// 在广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ads 广告数据组 模板为视图类型数组,非模板为ABUMediatedNativeAd类型数组 -/// @param exts 扩展信息组 key值请参照ABUMediaAdLoadingExt*****,与ads一一对应 -- (void)drawAd:(id_Nonnull)adapter didLoadWithDrawAds:(NSArray *_Nullable)ads exts:(NSArray * _Nullable)exts; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)drawAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; - -#pragma mark - View - -/// 广告展示时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter didVisibleWithMediatedAd:(id _Nonnull)drawAd; - -/// 广告点击事件时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter didClickWithMediatedAd:(id _Nonnull)drawAd; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter willPresentFullScreenModalWithMediatedAd:(id _Nonnull)drawAd; - -/// 在广告关闭详情页或者appstore时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter willDismissFullScreenModalWithMediatedAd:(id _Nonnull)drawAd; - -/// 仅限自渲染广告,在广告关闭的时候调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd) -/// @param filterWords 用户手动关闭时的关闭原因描述 -- (void)drawAd:(id_Nonnull)adapter didCloseWithMediatedAd:(id _Nonnull)drawAd closeReasons:(NSArray *_Nullable)filterWords; - -#pragma mark - Express ad -/// 仅限模板广告,在渲染成功或者模板广告的尺寸更新时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter renderSuccessWithExpressView:(UIView *_Nonnull)expressView; - -/// 仅限模板广告,在渲染失败调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter renderFailWithExpressView:(UIView *_Nonnull)expressView andError:(NSError *_Nonnull)error; - -/// 仅限模板广告,在模板广告关闭的时候调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告请传递上报expressView -/// @param filterWords 用户手动关闭时的关闭原因描述 -- (void)drawAd:(id_Nonnull)adapter didCloseWithExpressView:(UIView *_Nonnull)expressView closeReasons:(NSArray *_Nullable)filterWords; -#pragma mark - video - -/// 视频广告中视频播放状态变更的时候调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param state 播放状态 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter videoStateDidChangedWithState:(ABUPlayerPlayState)state andMediatedAd:(id _Nonnull)drawAd; - -/// 视频广告中视频视图被点击时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter videoDidClick:(id _Nonnull)drawAd; - -/// 视频广告中视频播放完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param drawAd 自渲染广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),模板广告请传递上报expressView -- (void)drawAd:(id_Nonnull)adapter videoDidPlayFinish:(id _Nonnull)drawAd; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h.meta deleted file mode 100644 index bd213b9..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomDrawAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 899ef2ac0117a4740ba942046448edea -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h deleted file mode 100644 index bb8868c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// ABUCustomFullscreenVideoAdapter.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomFullscreenVideoAdapterBridge.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 自定义全屏视频广告的adapter广告协议 -@protocol ABUCustomFullscreenVideoAdapter - -/// 加载广告的方法 -/// @param slotID adn的广告位ID -/// @param parameter 广告加载的参数 -- (void)loadFullscreenVideoAdWithSlotID:(NSString *)slotID andParameter:(NSDictionary *)parameter; - -/// 展示广告的方法 -/// @param viewController 控制器对象 -/// @param parameter 展示广告的参数,由GroMore接入媒体配置 -- (BOOL)showAdFromRootViewController:(UIViewController *_Nonnull)viewController parameter:(NSDictionary *)parameter; - -/// 当前加载的广告的状态 -- (ABUMediatedAdStatus)mediatedAdStatus; - -@optional -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h.meta deleted file mode 100644 index f89e5ba..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f9c4d66dd3d21684bbdd5eee13f75d2e -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h deleted file mode 100644 index 24ed1d0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// ABUCustomFullscreenVideoAdapterBridge.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUAdapterRewardAdInfo.h" - -NS_ASSUME_NONNULL_BEGIN -@protocol ABUCustomFullscreenVideoAdapter; - -/// 自定义全屏视频广告的adapter的回调协议 -@protocol ABUCustomFullscreenVideoAdapterBridge -@optional - -/// 在广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ext 回传信息 -- (void)fullscreenVideoAd:(id_Nonnull)adapter didLoadWithExt:(NSDictionary *)ext; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -/// @param ext 回传信息 -- (void)fullscreenVideoAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error ext:(NSDictionary *)ext; - -/// 在广告中视频素材加载完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdVideoDidLoad:(id_Nonnull)adapter; - -/// 在广告已经展示时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdDidVisible:(id_Nonnull)adapter; - -/// 广告展示失败的时候调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)fullscreenVideoAdDidShowFailed:(id)adapter error:(NSError *)error; - -/// 在广告关闭时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdDidClose:(id_Nonnull)adapter; - -/// 在广告点击事件触发时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdDidClick:(id_Nonnull)adapter; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdWillPresentFullscreenModal:(id_Nonnull)adapter; - -/// 在广告视频播放完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)fullscreenVideoAd:(id_Nonnull)adapter didPlayFinishWithError:(nullable NSError *)error; - -/// 在广告被点击跳过时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdDidClickSkip:(id_Nonnull)adapter; - -/// 在模板广告渲染成功时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)fullscreenVideoAdRenderSuccess:(id_Nonnull)adapter; - -/// 在广告渲染失败时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)fullscreenVideoAd:(id_Nonnull)adapter renderFailedWithError:(NSError *)error; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; - -/// 在ADN验证激励成功时调用,直接调用即可,无需做响应判断:目前支持的adn:GDT -/// @param adapter 当前适配器 -/// @param infoBuilder 激励信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter didServerRewardSuccessWithInfo:(void(^)(ABUAdapterRewardAdInfo *info))infoBuilder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h.meta deleted file mode 100644 index b1d650b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomFullscreenVideoAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b8d601cc8d2ed344081938796ecb008b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h deleted file mode 100644 index 923eba0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// ABUCustomInterstitialAdapter.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/6. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomInterstitialAdapterBridge.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 自定义插屏广告的adapter广告协议 -@protocol ABUCustomInterstitialAdapter - -/// 加载广告的方法 -/// @param slotID adn的广告位ID -/// @param size 广告展示尺寸 -/// @param parameter 广告加载的参数 -- (void)loadInterstitialAdWithSlotID:(NSString *)slotID andSize:(CGSize)size parameter:(NSDictionary *)parameter; - -/// 展示广告的方法 -/// @param viewController 控制器对象 -/// @param parameter 展示广告的参数,由GroMore接入媒体配置 -- (BOOL)showAdFromRootViewController:(UIViewController *_Nonnull)viewController parameter:(NSDictionary *)parameter; - -/// 当前加载的广告的状态 -- (ABUMediatedAdStatus)mediatedAdStatus; - -@optional -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h.meta deleted file mode 100644 index f7767d6..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bc2a68749e551c8439fb45031d6bbb48 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h deleted file mode 100644 index 02836a5..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// ABUCustomInterstitialAdapterBridge.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/6. -// - -#import - -NS_ASSUME_NONNULL_BEGIN -@protocol ABUCustomInterstitialAdapter; - -/// 自定义插屏广告的adapter的回调协议 -@protocol ABUCustomInterstitialAdapterBridge -@optional - -/// 在广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ext 回传信息 -- (void)interstitialAd:(id_Nonnull)adapter didLoadWithExt:(NSDictionary *)ext; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -/// @param ext 回传信息 -- (void)interstitialAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error ext:(NSDictionary *)ext; - -/// 在广告已经展示时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdDidVisible:(id_Nonnull)adapter; - -/// 广告展示失败的时候调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)interstitialAdDidShowFailed:(id)adapter error:(NSError *)error; - -/// 在广告关闭时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdDidClose:(id_Nonnull)adapter; - -/// 在广告点击事件触发时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdDidClick:(id_Nonnull)adapter; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdWillPresentFullScreenModal:(id_Nonnull)adapter; - -/// 在广告关闭详情页或者appstore时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdWillDismissFullScreenModal:(id_Nonnull)adapter; - -/// 在模板广告渲染成功时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)interstitialAdRenderSuccess:(id_Nonnull)adapter; - -/// 在广告渲染失败时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)interstitialAd:(id_Nonnull)adapter renderFailedWithError:(NSError *)error; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h.meta deleted file mode 100644 index ef242fa..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomInterstitialAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 842834c8df527e149984911a633ecbbc -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h deleted file mode 100644 index 0c51c17..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h +++ /dev/null @@ -1,71 +0,0 @@ -// -// ABUCustomNativeAdapter.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomNativeAdapterBridge.h" -#import "ABUVideoAdReportSupport.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUDislikeReason; - -/// 自定义Native广告的adapter广告协议 -@protocol ABUCustomNativeAdapter - -/// 加载广告的方法 -/// @param slotID adn的广告位ID -/// @param size 广告展示尺寸 -/// @param imageSize 图片或视频展示尺寸 -/// @param parameter 广告加载的参数 -- (void)loadNativeAdWithSlotID:(NSString *)slotID andSize:(CGSize)size imageSize:(CGSize)imageSize parameter:(NSDictionary *)parameter; - -/// 渲染广告,为模板广告时会回调该方法,需对广告进行渲染 -/// @param expressAdView 模板广告 -- (void)renderForExpressAdView:(UIView *)expressAdView; - -/// 为模板广告设置控制器 -/// @param viewController 控制器 -/// @param expressAdView 模板广告 -- (void)setRootViewController:(UIViewController *)viewController forExpressAdView:(UIView *)expressAdView; - -/// 为非模板广告设置控制器 -/// @param viewController 控制器 -/// @param nativeAd 非模板广告 -- (void)setRootViewController:(UIViewController *)viewController forNativeAd:(id)nativeAd; - -/// 注册容器和可点击区域 -/// @param containerView 容器视图 -/// @param views 可点击视图组 -- (void)registerContainerView:(__kindof UIView *)containerView andClickableViews:(NSArray<__kindof UIView *> *)views forNativeAd:(id)nativeAd; - -@optional - -/// 当前加载的广告的状态,native模板广告 -- (ABUMediatedAdStatus)mediatedAdStatusWithExpressView:(UIView *)view; - -/// 当前加载的广告的状态,native非模板广告 -- (ABUMediatedAdStatus)mediatedAdStatusWithMediatedNativeAd:(ABUMediatedNativeAd *)ad; - -/// 广告视图即将被展示回调,只会调用一次 -/// @param expressAdView 模板广告视图 -/// @param mediatedNativeAd GroMore包装的广告数据 -- (void)adViewWillAddToSuperViewWithExpressAdView:(__kindof UIView *)expressAdView orMediatedNativeAd:(ABUMediatedNativeAd *)mediatedNativeAd; - -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -/// 上报dislike的原因,仅限非模板广告自定义关闭按钮时使用 -/// @param ad GroMore包装的非模板广告数据 -/// @param reasons dislike的原因。数据基于ADN提供的原因修改 -- (void)reportDislikeAd:(ABUMediatedNativeAd *)ad withReasons:(NSArray *)reasons; - -- (void)reportVideoEvent:(ABUVideoAdEvent)event forAd:(ABUMediatedNativeAd *)ad withParameters:(NSDictionary *)parameters; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h.meta deleted file mode 100644 index 381c3d1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 81bd63ab860ce8d4890f3d10dd39da01 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h deleted file mode 100644 index efb1013..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h +++ /dev/null @@ -1,100 +0,0 @@ -// -// ABUCustomNativeAdapterBridge.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUMediatedNativeAd.h" -#import "ABUPlayerPlayState.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomNativeAdapter,ABUDislikeWords; - -/// 自定义Native广告的adapter的回调协议 -@protocol ABUCustomNativeAdapterBridge -@optional - -#pragma mark - Load -/// 在非模板广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ads 广告数据组 -/// @param exts 扩展数据组 -- (void)nativeAd:(id_Nonnull)adapter didLoadWithNativeAds:(NSArray * _Nullable)ads exts:(NSArray * _Nullable)exts; - -/// 在模板广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param views 广告视图数据组 -/// @param exts 扩展数据组 -- (void)nativeAd:(id_Nonnull)adapter didLoadWithExpressViews:(NSArray * _Nullable)views exts:(NSArray * _Nullable)exts; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)nativeAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; - -#pragma mark - View - -/// 广告展示时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter didVisibleWithMediatedNativeAd:(id _Nonnull)nativeAd; - -/// 广告点击事件时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter didClickWithMediatedNativeAd:(id _Nonnull)nativeAd; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter willPresentFullScreenModalWithMediatedNativeAd:(id _Nonnull)nativeAd; - -/// 在广告落地页关闭时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter didDismissFullScreenModalWithMediatedNativeAd:(id _Nonnull)nativeAd; - -#pragma mark - Express ad -/// 仅限模板广告,在渲染成功或者模板广告的尺寸更新时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告 -- (void)nativeAd:(id_Nonnull)adapter renderSuccessWithExpressView:(UIView *_Nonnull)expressView; - -/// 仅限模板广告,在渲染失败调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告 -- (void)nativeAd:(id_Nonnull)adapter renderFailWithExpressView:(UIView *_Nonnull)expressView andError:(NSError *_Nonnull)error; - -/// 仅限模板广告,在模板广告关闭的时候调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param expressView 模板广告 -/// @param filterWords 用户手动关闭时的关闭原因描述 -- (void)nativeAd:(id_Nonnull)adapter didCloseWithExpressView:(UIView *_Nonnull)expressView closeReasons:(NSArray *_Nullable)filterWords; - -#pragma mark - video - -/// 视频广告中视频播放状态变更的时候调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param state 播放状态 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter videoStateDidChangedWithState:(ABUPlayerPlayState)state andNativeAd:(id _Nonnull)nativeAd; - -/// 视频广告中视频视图被点击时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter videoDidClick:(id _Nonnull)nativeAd; - -/// 视频广告中视频播放完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param nativeAd 广告数据,native广告请传递原始数据(即ABUMediatedNativeAd.originMediatedNativeAd),express广告请传递上报GroMore的UIView -- (void)nativeAd:(id_Nonnull)adapter videoDidPlayFinish:(id _Nonnull)nativeAd; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h.meta deleted file mode 100644 index a588621..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomNativeAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2c695f18dc56d954580461f035bf3b36 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h deleted file mode 100644 index 7058391..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// ABUCustomRewardedVideoAdapter.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomRewardedVideoAdapterBridge.h" - -NS_ASSUME_NONNULL_BEGIN -/// 自定义激励视频广告的adapter广告协议 -@protocol ABUCustomRewardedVideoAdapter - -/// 加载广告的方法 -/// @param slotID adn的广告位ID -/// @param parameter 广告加载的参数 -- (void)loadRewardedVideoAdWithSlotID:(NSString *)slotID andParameter:(NSDictionary *)parameter; - -/// 展示广告的方法 -/// @param viewController 控制器对象 -/// @param parameter 展示广告的参数,由GroMore接入媒体配置 -- (BOOL)showAdFromRootViewController:(UIViewController *_Nonnull)viewController parameter:(NSDictionary *)parameter; - -/// 当前加载的广告的状态 -- (ABUMediatedAdStatus)mediatedAdStatus; - -@optional -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -/// 回调信息补充 -@property (nonatomic, copy, nullable, readonly) NSDictionary *extroInfoMap; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h.meta deleted file mode 100644 index f67b485..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 84226081afa80f341bfdbd6b9f83d292 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h deleted file mode 100644 index eac0e15..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// ABUCustomRewardedVideoAdapterBridge.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUAdapterRewardAdInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomRewardedVideoAdapter; - -/// 自定义激励视频广告的adapter的回调协议 -@protocol ABUCustomRewardedVideoAdapterBridge -@optional - -/// 在广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ext 回传信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter didLoadWithExt:(NSDictionary *)ext; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -/// @param ext 回传信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error ext:(NSDictionary *)ext; - -/// 在广告中视频素材加载完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdVideoDidLoad:(id_Nonnull)adapter; - -/// 在广告已经展示时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdDidVisible:(id_Nonnull)adapter; - -/// 广告展示失败的时候调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)rewardedVideoAdDidShowFailed:(id)adapter error:(NSError *)error; - -/// 在广告关闭时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdDidClose:(id_Nonnull)adapter; - -/// 在广告点击事件触发时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdDidClick:(id_Nonnull)adapter; - -/// 在广告视频播放完成时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter didPlayFinishWithError:(NSError *_Nullable)error; - -/// 在ADN验证激励成功时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param infoBuilder 激励信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter didServerRewardSuccessWithInfo:(void(^)(ABUAdapterRewardAdInfo *info))infoBuilder; - -/// 在广告被点击跳过时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdDidClickSkip:(id_Nonnull)adapter; - -/// 在模板广告渲染成功时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdRenderSuccess:(id_Nonnull)adapter; - -/// 在广告渲染失败时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)rewardedVideoAd:(id_Nonnull)adapter renderFailedWithError:(NSError *_Nullable)error; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdWillPresentFullScreenModel:(id_Nonnull)adapter; - -/// 在广告关闭详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)rewardedVideoAdWillDismissFullScreenModel:(id_Nonnull)adapter; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h.meta deleted file mode 100644 index 2974dfb..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomRewardedVideoAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 06452c948267fba48ab238feaa20bed8 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h deleted file mode 100644 index 06afbd2..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// ABUCustomSplashAdapter.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUCustomAdapter.h" -#import "ABUCustomSplashAdapterBridge.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 开屏广告自定义实现协议 -@protocol ABUCustomSplashAdapter - -/// 加载开屏广告 -/// @param slotID 广告位ID -/// @param parameter 广告加载参数 -- (void)loadSplashAdWithSlotID:(NSString *)slotID andParameter:(NSDictionary *)parameter; - -/// 展示开屏广告 -/// @param window 广告展示窗口 -/// @param parameter 广告展示参数 -- (void)showSplashAdInWindow:(UIWindow *)window parameter:(NSDictionary *)parameter; - -/// 广告关闭实现,在外部使用开发者调用`destoryAd`时触发 -- (void)dismissSplashAd; - -/// 当前加载的广告的状态 -- (ABUMediatedAdStatus)mediatedAdStatus; - -@optional - -/// 代理,开发者需使用该对象回调事件,Objective-C下自动生成无需设置,Swift需声明 -@property (nonatomic, weak, nullable) id bridge; - -/// 展示开屏cardView -/// @param rootVC cardView要展示在的VC -/// @param parameter 额外参数 -- (void)showSplashCardInRootVC:(UIViewController *)rootVC parameter:(NSDictionary *)parameter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h.meta deleted file mode 100644 index aa71182..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 21e5c0a62570c0c418fd93658e0d6e60 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h deleted file mode 100644 index 6574168..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h +++ /dev/null @@ -1,135 +0,0 @@ -// -// ABUCustomSplashAdapterBridge.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import -#import "ABUZoomOutViewProperty.h" -#import "ABUCardViewProperty.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomSplashAdapter; - -/// 自定义开屏广告的adapter的回调协议 -@protocol ABUCustomSplashAdapterBridge -@optional - -/// 在广告加载完成时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param ext 回传信息 -- (void)splashAd:(id_Nonnull)adapter didLoadWithExt:(NSDictionary *)ext; - -/// 在广告加载失败时调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -/// @param ext 回传信息 -- (void)splashAd:(id_Nonnull)adapter didLoadFailWithError:(NSError *_Nullable)error ext:(NSDictionary *)ext; - -/// 在广告加载完成后如果存在zoomview时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param view zoom out view -/// @param property zoom out view属性 -- (void)splashAd:(id)adapter hasZoomOutView:(UIView *)view withProperty:(void(^)(ABUZoomOutViewProperty *prop))property; - -/// 在广告加载完成后如果存在cardView时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param view cardView -- (void)splashAd:(id)adapter hasCardView:(UIView *)view withProperty:(void(^)(ABUCardViewProperty *prop))property; - -/// 在广告即将展示时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdWillVisible:(id_Nonnull)adapter; - -/// 广告展示失败的时候调用该方法,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)splashAdDidShowFailed:(id)adapter error:(NSError *)error; - -/// 在广告点击事件触发时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdDidClick:(id_Nonnull)adapter; - -/// 在广告被点击跳过时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdDidClickSkip:(id_Nonnull)adapter; - -/// 在广告关闭时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdDidClose:(id_Nonnull)adapter; - -/// 在广告即将展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdWillPresentFullScreenModal:(id_Nonnull)adapter; - -/// 在广告关闭详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdWillDismissFullScreenModal:(id_Nonnull)adapter; - -/// 在模板广告渲染成功时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdDidRenderSuccess:(id_Nonnull)adapter; - -/// 在广告渲染失败时调用,非模板广告无需调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 错误信息 -- (void)splashAd:(id_Nonnull)adapter didRenderFailedWithError:(NSError *)error; - -/// 在广告倒计时结束时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -- (void)splashAdDidCountDownToZero:(id_Nonnull)adapter; - -/// 在广告视频播放完成或者出错时调用,直接调用即可,无需做响应判断 -/// @param adapter 当前适配器 -/// @param error 播放错误 -- (void)splashAd:(id_Nonnull)adapter didPlayFinishWithError:(NSError *)error; - -/// 广告点击跳转使用的控制器 -- (UIViewController *)viewControllerForPresentingModalView; -@end - -/// 开屏广告zoom out 视图协议 -@protocol ABUCustomSplashAdapterZoomOutViewBridge - -/// 当zoom out 视图点击时调用,直接调用即可,无需做响应判断 -/// @param splashZoomOutView zoom out 视图 -- (void)adapterAdSplashZoomOutViewDidClick:(UIView *_Nonnull)splashZoomOutView; - -/// 当zoom out 视图关闭时调用,直接调用即可,无需做响应判断 -/// @param splashZoomOutView zoom out 视图 -- (void)adapterAdSplashZoomOutViewDidClose:(UIView *_Nonnull)splashZoomOutView; - -/// 当zoom out 在广告已经展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param splashZoomOutView zoom out 视图 -- (void)adapterAdSplashZoomOutViewDidPresentFullScreenModal:(UIView *_Nonnull)splashZoomOutView; - -/// 当zoom out 在广告已经关闭详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param splashZoomOutView zoom out 视图 -- (void)adapterAdSplashZoomOutViewDidDismissFullScreenModal:(UIView *_Nonnull)splashZoomOutView; - -@end - -/// 开屏广告cardView 视图协议 -@protocol ABUCustomSplashAdapterCardViewBridge - -/// 当zoom out 视图点击时调用,直接调用即可,无需做响应判断 -/// @param splashCardView cardView 视图 -- (void)adapterAdSplashCardViewDidClick:(UIView *_Nonnull)splashCardView; - -/// 当zoom out 视图关闭时调用,直接调用即可,无需做响应判断 -/// @param splashCardView cardView 视图 -- (void)adapterAdSplashCardViewDidClose:(UIView *_Nonnull)splashCardView; - -/// 当zoom out 在广告已经展示详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param splashCardView cardView 视图 -- (void)adapterAdSplashCardViewDidPresentFullScreenModal:(UIView *_Nonnull)splashCardView; - -/// 当zoom out 在广告已经关闭详情页或者app store时调用,直接调用即可,无需做响应判断 -/// @param splashCardView cardView 视图 -- (void)adapterAdSplashCardViewDidDismissFullScreenModal:(UIView *_Nonnull)splashCardView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h.meta deleted file mode 100644 index 86fd7f0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUCustomSplashAdapterBridge.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 89f636a9603f82c408ad61cb0705a35a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h deleted file mode 100644 index f12508d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// ABUDictionary.h -// Ads-Mediation-CN -// -// Created by bytedance on 2022/8/12. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -// 隐藏信息的字典,可以隐藏部分key的键值,不过可以通过key获取 -@interface ABUDictionary : NSDictionary - -// array 为字典中正常显示的内容 -+ (instancetype)dictionaryWithDictionary:(NSDictionary *)dict array:(NSArray *)array; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h.meta deleted file mode 100644 index 17e68d1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDictionary.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4ef463ff54180944bb909805570d3b87 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h deleted file mode 100644 index c18906d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Created by bytedance on 2022/4/26. -// - -#import - -@interface ABUDislikeReason : NSObject - -- (instancetype)initWithID:(NSString *)ID name:(NSString *)name subReasons:(NSArray *)reasons; - -@property (nonatomic, copy, readonly) NSString *ID; - -@property (nonatomic, copy, readonly) NSString *name; - -@property (nonatomic, copy, readonly) NSArray *subReasons; - -@property (nonatomic, assign) BOOL isSelected; - -@end \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h.meta deleted file mode 100644 index 12d419a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReason.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3aaebcc116fbd0944a795967526c384b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h deleted file mode 100644 index 1030ea8..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// Created by bytedance on 2022/4/26. -// - -#import -#import "ABUDislikeReason.h" - -@class ABUNativeAdView; -@class ABUDrawAdView; - -/// dislike的原因上报句柄 -@interface ABUDislikeReporter : NSObject - -/// 构建上报对象 -/// @param nativeAdView 非模板Native广告对应的广告视图对象 -- (instancetype)initWithNativeAd:(ABUNativeAdView *)nativeAdView; - -/// 构建上报对象 -/// @param nativeAdView 非模板Native广告对应的广告视图对象 -- (instancetype)initWithDrawAd:(ABUDrawAdView *)drawAdView; - -/// 原因,不喜欢该广告的原因,由adn通过adapter提供 -@property (nonatomic, copy, readonly) NSArray *reasons; - -/// 选中了某个原因 -/// @param ID 原因的唯一标识 -- (void)didSelectedReasonWithID:(NSString *)ID; - -/// 取消选中了某个原因 -/// @param ID 原因的唯一标识 -- (void)didUnselectedReasonWithID:(NSString *)ID; - -/// 提交最终结果 -- (void)submit; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h.meta deleted file mode 100644 index f312e4d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeReporter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 75fbf9981ee03004c950560e34cc867d -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h deleted file mode 100644 index ac3962a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// ABUDislikeWords.h -// ABUAdSDK -// -// Created by bytedance on 2021/9/29. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 用户主动关闭广告原因,由自定义adapter开发者透传,内容不限,GroMore不对该数据进行处理[兼容旧版本] -//@interface ABUDislikeWords : NSDictionary -// -//@end - -typedef NSString ABUDislikeWords; - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h.meta deleted file mode 100644 index 58046c7..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDislikeWords.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e42ba6d19ac373849a833253f9b0d9fd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h deleted file mode 100644 index c8660b6..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// ABUDrawAdVideoDelegate.h -// Ads-Mediation-CN -// -// Created by heyinyin on 2022/4/11. -// -#import -#import "ABUPlayerPlayState.h" - -@class ABUDrawAdView; - -@protocol ABUDrawAdVideoDelegate -@optional - -/// This method is called when videoadview playback status changed. -/// @param drawAdView draw ad view -/// @param playerState player state after changed -- (void)drawAdVideo:(ABUDrawAdView *_Nullable)drawAdView stateDidChanged:(ABUPlayerPlayState)playerState; - - -/// This method is called when videoadview's finish view is clicked. -/// @param drawAdView draw ad view -- (void)drawAdVideoDidClick:(ABUDrawAdView *_Nullable)drawAdView; - - -/// This method is called when videoadview end of play. -/// @param drawAdView draw ad view -- (void)drawAdVideoDidPlayFinish:(ABUDrawAdView *_Nullable)drawAdView; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h.meta deleted file mode 100644 index 74cf920..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdVideoDelegate.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 634e0790b61271d42b42fae13e833eb4 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h deleted file mode 100644 index a843fe3..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// ABUDrawVideoAdView.h -// ABUAdKsAdapter -// -// Created by heyinyin on 2022/4/7. -// - -#import "ABUCanvasView.h" - -#import "ABUDrawAdsManager.h" -#import "ABUImage.h" -#import "ABUDrawAdViewDelegate.h" -#import "ABUDrawAdVideoDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUDrawAdsManager, ABURitInfo, ABUVideoAdReporter; -@class ABUDictionary; - -@interface ABUDrawAdView : ABUCanvasView -/// 广告管理者 -@property (nonatomic, weak, readonly) ABUDrawAdsManager *adManager; - -/// 代理协议对象 -@property (nonatomic, weak, readwrite, nullable) id delegate; - -/// 视频播放代理协议对象 -@property (nonatomic, weak, readwrite, nullable) id videoDelegate; - -/// 是否是模板广告,由adapter开发者实现 -@property (nonatomic, assign, readonly) BOOL isExpressAd; - -/// 是否是模板广告,由adapter开发者实现,同isExpressAd -@property (nonatomic, assign, readonly) BOOL hasExpressAdGot; - -/// [必传]跳转控制器 -@property (nonatomic, weak, readwrite) UIViewController *_Nullable rootViewController; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (nullable ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 广告的扩展信息,可能为nil -- (ABUDictionary *_Nullable)extraData; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -/// 广告视图的唯一标识 -@property (nonatomic, copy, readonly) NSString *adViewID; -@end -/// draw广告视图类,模板部分 -@interface ABUDrawAdView (Express) - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 返回显示广告对应的Adn名称 -/// [必要]渲染模板广告,开发者调用前无需区分是否为模板广告,GroMore会自行处理 -- (void)render; - -/// [保留方法]更新模板媒体视图大小 -- (void)reSizeMediaView; - -@end - -@interface ABUDrawAdView (Native) - -/// 自渲染视频类广告事件上报对象,仅采用自定义视频播放器时需要上报,部分ADN需申请白名单 -@property (nonatomic, strong, readonly) ABUVideoAdReporter *videoAdReporter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h.meta deleted file mode 100644 index 4a527f0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdView.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 80443c2d72966a84596b028a850a956a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h deleted file mode 100644 index 51e4237..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// ABUDrawAdViewDelegate.h -// Ads-Mediation-CN -// -// Created by heyinyin on 2022/4/11. -// - -#import -#import "ABUPlayerPlayState.h" - -@class ABUDrawAdView; - -@protocol ABUDrawAdViewDelegate - -@optional - -/// 模板广告渲染成功回调,非模板广告不会回调,模板广告可能不会回调 -/// @param drawAdView 模板广告对象 -- (void)drawAdExpressViewRenderSuccess:(ABUDrawAdView *_Nonnull)drawAdView; - -/// 模板广告渲染成功回调,非模板广告不会回调,模板广告可能不会回调 -/// @param drawAdView 模板广告对象 -/// @param error 渲染出错原因 -- (void)drawAdExpressViewRenderFail:(ABUDrawAdView *_Nonnull)drawAdView error:(NSError *_Nullable)error; - -/// 模板广告点击关闭时触发 -/// @param drawAdView 广告视图 -/// @param filterWords 广告关闭原因,adapter开发者透传数据 -- (void)drawAdExpressViewDidClosed:(ABUDrawAdView *_Nullable)drawAdView closeReason:(NSArray *_Nullable)filterWords; - -/// 非模板广告点击关闭时触发 -/// @param drawAdView 广告视图 -/// @param filterWords 广告关闭原因,adapter开发者透传数据 -- (void)drawAdDidClosed:(ABUDrawAdView *_Nullable)drawAdView closeReason:(NSArray *_Nullable)filterWords; - -/// 广告展示回调,不区分模板与非模板 -/// @param drawAdView 广告对象 -- (void)drawAdDidBecomeVisible:(ABUDrawAdView *_Nonnull)drawAdView; - -/// 广告视频播放状态变更回调,是否回调与adapter实现有关 -/// @param drawAdView 广告对象 -/// @param playerState 播放状态 -- (void)drawAdView:(ABUDrawAdView *_Nonnull)drawAdView stateDidChanged:(ABUPlayerPlayState)playerState; - -/// 广告点击事件回调 -/// @param drawAdView 广告对象 -/// @param view 广告展示视图 -- (void)drawAdDidClick:(ABUDrawAdView *_Nonnull)drawAdView withView:(UIView *_Nullable)view; - -/// 广告即将展示全屏页面/商店时触发 -/// @param drawAdView 广告视图 -- (void)drawAdViewWillPresentFullScreenModal:(ABUDrawAdView *_Nonnull)drawAdView; - -/// 广告即将关闭全屏页面/商店时触发 -/// @param drawAdView 广告视图 -- (void)drawAdViewWillDismissFullScreenModal:(ABUDrawAdView *_Nonnull)drawAdView; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h.meta deleted file mode 100644 index 3e7801a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdViewDelegate.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 66472668cbef69744abe1d395c5b315b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h deleted file mode 100644 index bca2c5b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// ABUDrawAdsManager.h -// Ads-Mediation-CN -// -// Created by heyinyin on 2022/3/31. -// - -#import "ABUBaseAd.h" -#import "ABUSize.h" -#import "ABUAdSDKConst.h" -#import "ABUDrawAdView.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUDrawAdsManagerDelegate; - -@interface ABUDrawAdsManager : ABUBaseAd - -/// 快速广告构建方法 -/// @param unitID 广告位ID -/// @param adSize 广告视图大小 -- (instancetype)initWithAdUnitID:(NSString *)unitID adSize:(CGSize)adSize; - -/// 广告视图的尺寸,请勿设置为0 -@property (nonatomic, assign) CGSize adSize; - -/// 广告代理对象 -@property (nonatomic, weak) id delegate; - -/// 必要,设置广告详情跳转控制器 -@property (nonatomic, weak) UIViewController *rootViewController; - -/// 加载广告方法 -/// @param count 加载广告的数量,建议单次不超过3个 -- (void)loadAdDataWithCount:(NSUInteger)count; - -@end - -@class ABUDrawAdView; -/// Draw 广告回调协议 -@protocol ABUDrawAdsManagerDelegate - -@optional - -/// Draw 广告加载成功回调 -/// @param adsManager 广告管理对象 -/// @param drawAds 广告视图,GroMore包装视图对象组,包括模板广告和自渲染广告 -- (void)drawAdsManagerSuccessToLoad:(ABUDrawAdsManager *_Nonnull)adsManager drawVideoAds:(NSArray *_Nullable)drawAds; - -/// Draw 广告加载失败回调 -/// @param adsManager 广告管理对象 -/// @param error 加载出错信息 -- (void)drawAdsManager:(ABUDrawAdsManager *_Nonnull)adsManager didFailWithError:(NSError *_Nullable)error; - -/// 暂不开放使用 -- (void)drawAdsManager:(ABUDrawAdsManager *_Nonnull)adsManager didWaitingBiddingResultWithParameters:(NSDictionary *)parameters andResumeHandler:(void(^)(NSDictionary *_Nullable data, NSError *_Nullable error))handler; - -/// 暂不开放使用 -- (void)drawAdsManagerDidFinishLoadAdnAd:(ABUDrawAdsManager *_Nonnull)adsManager drawAd:(ABUDrawAdView *_Nullable)drawAd error:(NSError *_Nullable)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h.meta deleted file mode 100644 index 0d7da86..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUDrawAdsManager.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: eb7af40920d041949ba7efe4207a94cf -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h deleted file mode 100644 index 9e636f5..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h +++ /dev/null @@ -1,129 +0,0 @@ -// -// ABUNewFullscreenVideoAd.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import "ABUBaseAd.h" -#import "ABUAdSDKConst.h" -#import "ABURewardedVideoModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUFullscreenVideoAd, ABUAdapterRewardAdInfo; - -/// 全屏视频广告代理回调 -@protocol ABUFullscreenVideoAdDelegate - -@optional - -/// 广告加载成功回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidLoad:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告加载失败回调 -/// @param fullscreenVideoAd 广告管理对象 -/// @param error 错误信息 -- (void)fullscreenVideoAd:(ABUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; - -/// 广告已加载视频素材回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidDownLoadVideo:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告展示回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidVisible:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告点击详情事件回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidClick:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告点击跳过事件回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidSkip:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告关闭事件回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdDidClose:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 即将弹出详情广告页回调 -/// @param fullscreenVideoAd 广告管理对象 -- (void)fullscreenVideoAdWillPresentFullScreenModal:(ABUFullscreenVideoAd *)fullscreenVideoAd; - -/// 广告视频播放完成或者出错回调 -/// @param fullscreenVideoAd 广告管理对象 -/// @param error 播放出错时的信息,播放完成时为空 -- (void)fullscreenVideoAd:(ABUFullscreenVideoAd *)fullscreenVideoAd didPlayFinishWithError:(NSError *_Nullable)error; - -/// 广告展示失败回调 -/// @param fullscreenVideoAd 广告管理对象 -/// @param error 展示失败的原因 -- (void)fullscreenVideoAdDidShowFailed:(ABUFullscreenVideoAd *)fullscreenVideoAd error:(NSError *_Nonnull)error; - -/// 请求的服务器验证成功包括C2C和S2S方法回调;支持全屏视频,目前支持的adn:GDT, Load前可按需传入rewardModel信息 -/// @param fullscreenVideoAd 广告管理对象 -/// @param rewardInfo 奖励发放验证信息 -/// @param verify 是否验证通过 -- (void)fullscreenVideoAdServerRewardDidSucceed:(ABUFullscreenVideoAd *)fullscreenVideoAd rewardInfo:(ABUAdapterRewardAdInfo *_Nullable)rewardInfo verify:(BOOL)verify; - -@end - -/// 全屏视频广告管理类 -@interface ABUFullscreenVideoAd : ABUBaseAd - -/// 广告对象构建方法 -/// @param unitID 广告位ID -- (instancetype)initWithAdUnitID:(NSString *)unitID; - -/// 广告代理对象 -@property (nonatomic, weak) id delegate; - -/// optional 激励模型,用于全屏视频广告服务端激励回调;目前支持的adn:GDT -@property (nonatomic, strong) ABURewardedVideoModel * _Nonnull rewardModel; - -/// 是否使用模板广告,只对支持模板广告的第三方SDK有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL getExpressAdIfCan ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上全屏视频客户端将无需区分模板非模板"); - -/// 是否静音播放视频,是否真实静音由adapter确定,默认为NO,仅在广告加载前设置有效 -@property (nonatomic, assign) BOOL mutedIfCan; - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 是否使用GDT express 2.0,对GDT( ≥ 4.11.60)有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL useExpress2IfCanForGDT ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上配合GdtV4.12.80+全屏视频客户端将无需区分模板2.0"); - -/// 展示广告 -/// @param viewController 跳转控制器,必传 -- (BOOL)showAdFromRootViewController:(UIViewController *)viewController; - -/// 展示广告 -/// @param viewController 跳转控制器,必传 -/// @param extroInfos 扩展信息,可选,与adapter及ADN是否实现有关,字段参见ABUADSDKConst.h中全屏视频、激励视频展示扩展部分 -- (BOOL)showAdFromRootViewController:(UIViewController *)viewController extroInfos:(NSDictionary *_Nullable)extroInfos; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限;nil为无权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -/// 返回是否为模板广告,值同`getExpressAdIfCan` -@property (nonatomic, assign, readonly) BOOL hasExpressAdGot ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上全屏视频客户端将无需区分模板非模板"); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h.meta deleted file mode 100644 index 04f07c9..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUFullscreenVideoAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 743c2848884a4b04eabd4ffb967e4397 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h deleted file mode 100644 index 5ea083c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// ABUImage.h -// BUAdSDK -// -// Copyright © 2017 bytedance. All rights reserved. -// - -#import - -@interface ABUImage : NSObject -// image.If is nil,Please use imageURL as the standard to display image. -@property (nonatomic, copy) UIImage *image; - -// image address URL -@property (nonatomic, copy) NSURL *imageURL; - -// image width -@property (nonatomic, assign) float width; - -// image height -@property (nonatomic, assign) float height; - -// image scale -@property (nonatomic, assign) float scale; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h.meta deleted file mode 100644 index 579e370..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUImage.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1391490e550d14a4698feecac8aa32ac -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h deleted file mode 100644 index f5bd8c1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h +++ /dev/null @@ -1,104 +0,0 @@ -// -// ABUInterstitialAd.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/25. -// - -#import "ABUBaseAd.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUInterstitialAd; - -/// 插屏广告代理协议 -@protocol ABUInterstitialAdDelegate - -@optional - -/// 广告加载成功回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdDidLoad:(ABUInterstitialAd *)interstitialAd; - -/// 广告加载失败回调 -/// @param interstitialAd 广告管理对象 -/// @param error 加载错误信息 -- (void)interstitialAd:(ABUInterstitialAd *)interstitialAd didFailWithError:(NSError *_Nullable)error; - -/// 模板广告渲染失败时回调,非模板广告不会回调该方法 -/// @param interstitialAd 广告管理对象 -/// @param error 错误信息 -- (void)interstitialAdViewRenderFail:(ABUInterstitialAd *)interstitialAd error:(NSError *__nullable)error; - -/// 广告展示回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdDidVisible:(ABUInterstitialAd *)interstitialAd; - -/// 广告展示失败回调 -/// @param interstitialAd 广告管理对象 -/// @param error 展示失败的原因 -- (void)interstitialAdDidShowFailed:(ABUInterstitialAd *_Nonnull)interstitialAd error:(NSError *_Nonnull)error; - -/// 广告点击事件回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdDidClick:(ABUInterstitialAd *)interstitialAd; - -/// 广告关闭事件回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdDidClose:(ABUInterstitialAd *)interstitialAd; - -/// 即将弹出广告详情页回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdWillPresentFullScreenModal:(ABUInterstitialAd *)interstitialAd; - -/// 广告即将关闭广告详情页回调 -/// @param interstitialAd 广告管理对象 -- (void)interstitialAdWillDismissFullScreenModal:(ABUInterstitialAd *)interstitialAd; - -@end - -/// 插屏广告管理类 -@interface ABUInterstitialAd : ABUBaseAd - -/// 插屏广告构造方法 -/// @param adUnitID 广告位ID -/// @param expectSize 期望广告尺寸 -- (instancetype)initWithAdUnitID:(NSString *_Nonnull)adUnitID size:(CGSize)expectSize; - -/// 广告代理对象 -@property (nonatomic, weak) id delegate; - -/// 是否静音播放视频,是否真实静音由adapter确定,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL mutedIfCan; - -/// 是否使用GDT express 2.0,对GDT( ≥ 4.11.60)有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL useExpress2IfCanForGDT ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上配合GdtV4.12.80+插屏视频客户端将无需区分模板2.0"); - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 展示广告 -/// @param rootViewController 跳转控制器,必传 -- (BOOL)showAdFromRootViewController:(UIViewController *_Nonnull)rootViewController; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限;nil为无权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h.meta deleted file mode 100644 index 74d5c0d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 07a5723cce1790246b5e591522c876e4 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h deleted file mode 100644 index bed7f46..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h +++ /dev/null @@ -1,123 +0,0 @@ -// -// ABUInterstitialProAd.h -// ABUAdSDK -// -// Created by CHAORS on 2021/10/14. -// - -#import "ABUBaseAd.h" -#import "ABURewardedVideoModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUInterstitialProAd, ABUAdapterRewardAdInfo; -/// 插全屏广告代理协议 -@protocol ABUInterstitialProAdDelegate - -@optional - -/// 广告加载成功回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidLoad:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - -/// 广告已加载视频素材回调;非视频素材会在load之后立即给出,开发者可统一在该回调后作为离线展示广告的条件 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidDownLoadVideo:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - - -/// 视频素材广告播放完毕; -/// @param interstitialProAd 广告管理对象 -/// @param error 正常播放完毕为nil;异常结束时承载错误信息 -- (void)interstitialProAdDidPlayFinish:(ABUInterstitialProAd * _Nonnull)interstitialProAd didFailWithError:(NSError *_Nullable)error; - -/// 广告加载失败回调 -/// @param interstitialProAd 广告管理对象 -/// @param error 加载错误信息 -- (void)interstitialProAd:(ABUInterstitialProAd *_Nonnull)interstitialProAd didFailWithError:(NSError *_Nullable)error; - -/// 模板广告渲染失败时回调,非模板广告不会回调该方法 -/// @param interstitialProAd 广告管理对象 -/// @param error 错误信息 -- (void)interstitialProAdViewRenderFail:(ABUInterstitialProAd *_Nonnull)interstitialProAd error:(NSError *__nullable)error; - -/// 广告展示回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidVisible:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - -/// 广告展示失败回调 -/// @param interstitialProAd 广告管理对象 -/// @param error 展示失败的原因 -- (void)interstitialProAdDidShowFailed:(ABUInterstitialProAd *_Nonnull)interstitialProAd error:(NSError *_Nonnull)error; - -/// 广告点击事件回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidClick:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - -/// 广告点击跳过事件回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidSkip:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - - -/// 广告关闭事件回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdDidClose:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - -/// 即将弹出广告详情页回调 -/// @param interstitialProAd 广告管理对象 -- (void)interstitialProAdWillPresentFullScreenModal:(ABUInterstitialProAd *_Nonnull)interstitialProAd; - -/// 请求的服务器验证成功包括C2C和S2S方法回调;支持全屏视频,目前支持的adn:GDT, Load前可按需传入rewardModel信息 -/// @param interstitialProAd 广告管理对象 -/// @param rewardInfo 奖励发放验证信息 -/// @param verify 是否验证通过 -- (void)interstitialProAdServerRewardDidSucceed:(ABUInterstitialProAd *_Nonnull)interstitialProAd rewardInfo:(ABUAdapterRewardAdInfo *_Nullable)rewardInfo verify:(BOOL)verify; - -@end - - -/// 插全屏广告管理类 -@interface ABUInterstitialProAd : ABUBaseAd - -/// 插屏广告构造方法 -/// @param adUnitID 广告位ID -/// @param sizeForInterstitial 针对插屏(非全屏)期望的广告尺寸 -- (instancetype _Nonnull )initWithAdUnitID:(NSString *_Nonnull)adUnitID sizeForInterstitial:(CGSize)sizeForInterstitial; - -/// 广告代理对象 -@property (nonatomic, weak) id _Nullable delegate; - -/// optional 激励模型,用于全屏视频广告服务端激励回调;目前支持的adn:GDT -@property (nonatomic, strong) ABURewardedVideoModel * _Nonnull rewardModel; - -/// 是否静音播放视频,是否真实静音由adapter确定,默认为NO,仅在广告加载前设置有效 -@property (nonatomic, assign) BOOL mutedIfCan; - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 展示广告 -/// @param viewController 跳转控制器,必传 -/// @param extraInfos 扩展信息,可选,与adapter及ADN是否实现有关,字段参见ABUADSDKConst.h中全屏视频、激励视频展示扩展部分 -- (BOOL)showAdFromRootViewController:(UIViewController *_Nonnull)viewController extraInfos:(NSDictionary *_Nullable)extraInfos; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限;nil为无权限 -- (ABURitInfo *_Nullable)getCurrentBestEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *_Nullable)cacheRitList; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h.meta deleted file mode 100644 index 8bcfc11..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUInterstitialProAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 65b74926407f65c4f84dea88c49f5b86 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h deleted file mode 100644 index bc9c1da..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// ABUMediaBidResult.h -// Ads-Mediation-CN -// -// Created by bytedance on 2021/11/23. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ABUMediaBidResult : NSObject - -@property (nonatomic, assign, readonly) BOOL win; - -@property (nonatomic, assign, readonly) NSInteger winnerPrice; - -@property (nonatomic, copy, readonly) NSString *lossDescription; - -@property (nonatomic, copy, readonly) NSString *winnerAdnID; - -@property (nonatomic, copy, readonly) NSDictionary *ext; - -@property (nonatomic, strong, readonly) id originNativeAdData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h.meta deleted file mode 100644 index 2882971..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediaBidResult.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 66360def11607024c8490964e5df5dcc -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h deleted file mode 100644 index cf2e6a5..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Created by bytedance on 2021/7/8. -// - -#import -#import "ABUMediatedNativeAdData.h" -#import "ABUMediatedNativeAdViewCreator.h" - -@interface ABUMediatedNativeAd : NSObject - -// 广告物料,包含有最全的广告数据 -@property (nonatomic, strong, nonnull) id data; - -// 广告视图创建对象,对常用广告展示元素进行创建(存在意义:对部分adn创建特定视图的支持) -@property (nonatomic, strong, nonnull) id viewCreator; - -// 广告视图对象(存在意义:对部分adn创建特定视图的支持) -@property (nonatomic, strong, nonnull) UIView *view; - -// adn获取到的原始广告数据 -@property (nonatomic, strong, nonnull) id originMediatedNativeAd; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h.meta deleted file mode 100644 index 06f9232..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f17d50f5d3540564499b8531fcf6f9bd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h deleted file mode 100644 index fe76dcc..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h +++ /dev/null @@ -1,111 +0,0 @@ -// -// Created by bytedance on 2021/7/5. -// - -#import -#import "ABUAdSDKConst.h" - -@class ABUImage; - -typedef NS_ENUM (NSInteger, ABUMediatedNativeAdCallToType) { - ABUMediatedNativeAdCallToTypeUnknown = 0, - ABUMediatedNativeAdCallToTypeNone = 1, // pure ad display - ABUMediatedNativeAdCallToTypeURL = 2, // open the webpage using a browser - ABUMediatedNativeAdCallToTypePage = 3, // open the webpage within the app - ABUMediatedNativeAdCallToTypeDownload = 4, // download the app - ABUMediatedNativeAdCallToTypePhone = 5, // make a call - ABUMediatedNativeAdCallToTypeMessage = 6, // send messages - ABUMediatedNativeAdCallToTypeEmail = 7, // send email - ABUMediatedNativeAdCallToTypeVideoAdDetail = 8, // video ad details page - ABUMediatedNativeAdCallToTypeOthers = 100 //其他广告sdk返回的类型 -}; - -typedef NS_ENUM (NSInteger, ABUMediatedNativeAdMode) { - ABUMediatedNativeAdModeUnknown = 00, // 未知 - ABUMediatedNativeAdModeSmallImage = 02, // 水平小图样式 - ABUMediatedNativeAdModeLargeImage = 03, // 水平大图样式 - ABUMediatedNativeAdModeGroupImage = 04, // 水平组图样式 - ABUMediatedNativeAdModeLandscapeVideo = 05, // 水平视频样式 - ABUMediatedNativeAdModePortraitVideo = 15, // 垂直视频样式 - ABUMediatedNativeAdModePortraitImage = 16, // 垂直图片样式 - // 兼容 - ABUFeedADModeSmallImage = 02, // ABUMediatedNativeAdModeSmallImage, - ABUFeedADModeLargeImage = 03, // ABUMediatedNativeAdModeLargeImage, - ABUFeedADModeGroupImage = 04, // ABUMediatedNativeAdModeGroupImage, - ABUFeedVideoAdModeImage = 05, // ABUMediatedNativeAdModeLandscapeVideo, - ABUFeedVideoAdModePortrait = 15, // ABUMediatedNativeAdModePortraitVideo, - ABUFeedADModeImagePortrait = 16, // ABUMediatedNativeAdModePortraitImage, -}; - -typedef ABUMediatedNativeAdMode ABUFeedADMode; - -@protocol ABUMediatedNativeAdData; -@class ABUDislikeReason; - -typedef NSObject ABUMaterialMeta; - -/// 媒体native ad数据协议,配合ABUMediatedNativeAdViewCreator使用 -@protocol ABUMediatedNativeAdData - -/// 广告支持的跳转类型 -@property (nonatomic, assign, readonly) ABUMediatedNativeAdCallToType callToType; - -/// 物料图片集,如果图片有宽高,请尽量配置width和height -@property (nonatomic, copy, readonly, nullable) NSArray *imageList; - -/// app类型广告的广告商app图标,如果图标有宽高,请尽量配置width和height -@property (nonatomic, strong, readonly, nullable) ABUImage *icon; - -/// 广告adn的logo,如果logo有宽高,请尽量配置width和height -@property (nonatomic, strong, readonly, nullable) ABUImage *adLogo; - -/// 广告标题 -@property (nonatomic, copy, readonly, nullable) NSString *adTitle; - -/// 广告详情描述 -@property (nonatomic, copy, readonly, nullable) NSString *adDescription; - -/// 应用来源、市场,例如'App Store' -@property (nonatomic, copy, readonly, nullable) NSString *source; - -/// 按钮文案,例如'下载/安装' -@property (nonatomic, copy, readonly, nullable) NSString *buttonText; - -/// 图片/视频模式 -@property (nonatomic, assign, readonly) ABUMediatedNativeAdMode imageMode; - -/// app评分,区间为1-5,如果没有值返回-1 -@property (nonatomic, assign, readonly) NSInteger score; - -/// 评论数量,如果没有值返回-1 -@property (nonatomic, assign, readonly) NSInteger commentNum; - -/// 广告安装包体大小,单位KB,如果没有值返回-1 -@property (nonatomic, assign, readonly) NSInteger appSize; - -/// 视频时长,单位秒,如果没有值返回0 -@property (nonatomic, assign, readonly) NSInteger videoDuration; - -/// 视频纵横比(width/height),如果没有值或者异常返回0 -@property (nonatomic, assign, readonly) CGFloat videoAspectRatio; - -/// 媒体扩展数据 -@property (nonatomic, copy, readonly, nullable) NSDictionary *mediaExt; - -/// app购买价格,例如'免费',没有则为nil -@property (nonatomic, strong, readonly, nullable) NSString *appPrice; - -/// 广告商标识,广告商的名称或者链接 -@property (nonatomic, copy, readonly, nullable) NSString *advertiser; - -/// 品牌名称,若广告返回中无品牌名称则为空 -@property (copy, nonatomic, readonly, nullable) NSString *brandName; - -/// ADN提供的不喜欢广告的原因,可能为空 -@property (nonatomic, copy, readonly, nullable) NSArray *dislikeReasons; - -/// ADN提供的视频类型广告的资源路径,部分ADN需要申请白名单,可能为空 -@property (nonatomic, copy, readonly, nullable) NSString *videoUrl; - -@end - diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h.meta deleted file mode 100644 index 5e7bb85..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdData.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 047005b8d20f50b4c8ca592a13dd854a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h deleted file mode 100644 index 1111836..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// Created by bytedance on 2021/7/5. -// - -#import -#import - -/// 媒体Native非模板广告视图构造协议 -/// 📣 adapter开发者可不配置数据内容,外部开发者在接入时需手动填充ABUMediatedNativeAdData中数据 -@protocol ABUMediatedNativeAdViewCreator - -/// 是否支持自定义事件按钮,如果为YES,开发者可以配置 callToActionBtn 的数据,默认为YES -@property (nonatomic, assign, readonly) BOOL hasSupportActionBtn; - -/// 广告标题视图 -@property (nonatomic, strong, nullable, readonly) UILabel *titleLabel; - -/// 广告描述信息视图 -@property (nonatomic, strong, nullable, readonly) UILabel *descLabel; - -/// 广告图标视图 -@property (nonatomic, strong, nullable, readonly) UIImageView *iconImageView; - -/// 广告图片视图 -@property (nonatomic, strong, nullable, readonly) UIImageView *imageView; - -/// 广告事件按钮 -@property (nonatomic, strong, nullable, readonly) UIButton *callToActionBtn; - -/// 广告商视图 -@property (nonatomic, strong, nullable, readonly) UIView *advertiserView; - -/// 不喜欢广告按钮 -@property (nonatomic, strong, nullable, readonly) UIButton *dislikeBtn; - -/// 视频视图 -@property (nonatomic, strong, nullable, readonly) UIView *mediaView; - -/// 广告图标视图 -@property (nonatomic, strong, nullable, readonly) UIView *adLogoView; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h.meta deleted file mode 100644 index 6798dcd..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUMediatedNativeAdViewCreator.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 480776acbacbd634d8f57d7a2924a610 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h deleted file mode 100644 index 71c8eb8..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// Created by bytedance on 2021/7/8. -// Copyright (c) 2021 wangchao. All rights reserved. -// - -#import -#import "ABUPlayerPlayState.h" - -@class ABUNativeAdView; - -@protocol ABUNativeAdVideoDelegate - -@optional - -/// 当视频播放状态改变之后触发 -/// @param nativeAdView 广告视图 -/// @param playerState 变更后的播放状态 -- (void)nativeAdVideo:(ABUNativeAdView *_Nullable)nativeAdView stateDidChanged:(ABUPlayerPlayState)playerState; - - -/// 广告视图中视频视图被点击时触发 -/// @param nativeAdView 广告视图 -- (void)nativeAdVideoDidClick:(ABUNativeAdView *_Nullable)nativeAdView; - - -/// 广告视图中视频播放完成时触发 -/// @param nativeAdView 广告视图 -- (void)nativeAdVideoDidPlayFinish:(ABUNativeAdView *_Nullable)nativeAdView; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h.meta deleted file mode 100644 index e7cb802..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdVideoDelegate.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5981586900f508947b45351d8e52f509 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h deleted file mode 100644 index 58b2a56..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h +++ /dev/null @@ -1,85 +0,0 @@ -// -// ABUMediatedNativeAd.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/9. -// - -#import -#import "ABUCanvasView.h" -#import "ABUNativeAdView.h" -#import "ABUImage.h" -#import "ABUNativeAdViewDelegate.h" -#import "ABUNativeAdVideoDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUDictionary; - -@class ABUNativeAdsManager,ABURitInfo,ABUVideoAdReporter; - -/// native广告视图类 -@interface ABUNativeAdView : ABUCanvasView - -/// 广告管理者 -@property (nonatomic, weak, readonly) ABUNativeAdsManager *adManager; - -/// 代理协议对象 -@property (nonatomic, weak, readwrite, nullable) id delegate; - -/// 视频播放代理协议对象 -@property (nonatomic, weak, readwrite, nullable) id videoDelegate; - -/// 是否是模板广告,由adapter开发者实现 -@property (nonatomic, assign, readonly) BOOL isExpressAd; - -/// 是否是模板广告,由adapter开发者实现,同isExpressAd -@property (nonatomic, assign, readonly) BOOL hasExpressAdGot; - -/// [必传]跳转控制器 -@property (nonatomic, weak, readwrite) UIViewController *_Nullable rootViewController; - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (nullable ABURitInfo *)getShowEcpmInfo; - -/// 广告的扩展信息,可能为nil -- (ABUDictionary *_Nullable)extraData; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -/// 广告视图的唯一标识 -@property (nonatomic, copy, readonly) NSString *adViewID; - -@end - -/// native广告视图类,模板部分 -@interface ABUNativeAdView (Express) - -/// [必要]渲染模板广告,开发者调用前无需区分是否为模板广告,GroMore会自行处理 -- (void)render; - -/// [保留方法]更新模板媒体视图大小 -- (void)reSizeMediaView; - -@end - -@interface ABUNativeAdView (Native) - -/// 自渲染视频类广告事件上报对象,仅采用自定义视频播放器时需要上报,部分ADN需申请白名单 -@property (nonatomic, strong, readonly) ABUVideoAdReporter *videoAdReporter; - -@end -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h.meta deleted file mode 100644 index a437507..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdView.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a77b3754cf9d8f742bfae481ad19c530 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h deleted file mode 100644 index a7b6d52..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// Created by bytedance on 2021/7/8. -// Copyright (c) 2021 wangchao. All rights reserved. -// - -#import -#import "ABUPlayerPlayState.h" - -@class ABUNativeAdView; - -@protocol ABUNativeAdViewDelegate - -@optional - -/// 模板广告渲染成功回调,非模板广告不会回调,模板广告可能不会回调 -/// @param nativeExpressAdView 模板广告对象 -- (void)nativeAdExpressViewRenderSuccess:(ABUNativeAdView *_Nonnull)nativeExpressAdView; - -/// 模板广告渲染成功回调,非模板广告不会回调,模板广告可能不会回调 -/// @param nativeExpressAdView 模板广告对象 -/// @param error 渲染出错原因 -- (void)nativeAdExpressViewRenderFail:(ABUNativeAdView *_Nonnull)nativeExpressAdView error:(NSError *_Nullable)error; - -/// 广告展示回调,不区分模板与非模板 -/// @param nativeAdView 广告对象 -- (void)nativeAdDidBecomeVisible:(ABUNativeAdView *_Nonnull)nativeAdView; - -/// 广告视频播放状态变更回调,是否回调与adapter实现有关 -/// @param nativeAdView 广告对象 -/// @param playerState 播放状态 -- (void)nativeAdExpressView:(ABUNativeAdView *_Nonnull)nativeAdView stateDidChanged:(ABUPlayerPlayState)playerState; - -/// 广告点击事件回调 -/// @param nativeAdView 广告对象 -/// @param view 广告展示视图 -- (void)nativeAdDidClick:(ABUNativeAdView *_Nonnull)nativeAdView withView:(UIView *_Nullable)view; - -/// 广告即将展示全屏页面/商店时触发 -/// @param nativeAdView 广告视图 -- (void)nativeAdViewWillPresentFullScreenModal:(ABUNativeAdView *_Nonnull)nativeAdView; - -/// 广告即将退出全屏页面/商店时触发 -/// @param nativeAdView 广告视图 -- (void)nativeAdViewDidDismissFullScreenModal:(ABUNativeAdView *_Nonnull)nativeAdView; - -/// 模板广告点击关闭时触发 -/// @param nativeAdView 广告视图 -/// @param filterWords 广告关闭原因,adapter开发者透传数据 -- (void)nativeAdExpressViewDidClosed:(ABUNativeAdView *_Nullable)nativeAdView closeReason:(NSArray *_Nullable)filterWords; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h.meta deleted file mode 100644 index e4b9035..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdViewDelegate.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9f05bff0374c4aa4d9ea526ad70051f5 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h deleted file mode 100644 index 75a67b1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h +++ /dev/null @@ -1,122 +0,0 @@ -// -// ABUNativeAd.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import "ABUBaseAd.h" -#import "ABUSize.h" -#import "ABUNativeAdView.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Native广告配置协议 -@protocol ABUNativeAdSlot -@required - -/// 必要,广告位ID -@property (nonatomic, copy) NSString *ID; - -@optional - -/// 是否获取模板广告,默认为NO,优先以平台配置为准 -@property (nonatomic, assign) BOOL getExpressAdIfCan; - -/// 图片大小,包括视频媒体的大小设定 -@property (nonatomic, strong) ABUSize *imgSize; - -/// 同imgSize -@property (nonatomic, assign) CGSize imageOrVideoSize; - -/// 广告视图的尺寸,请勿设置为0 -@property (nonatomic, assign) CGSize adSize; - -@end - -#define ABUAdSlotPositionFeed 0; - -/// 旧版本广告配置类 -@interface ABUAdUnit : NSObject - -/// 旧版本兼容字段,无需设置 -@property (nonatomic, assign) ABUAdSlotAdType AdType ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,无需设置"); - -/// 旧版本兼容字段,无需设置 -@property (nonatomic, assign) ABUAdSlotPosition position ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,无需设置"); - -/// 旧版本兼容字段,无需设置 -@property (nonatomic, assign) BOOL isSupportDeepLink ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,无需设置"); - -@end - -@class ABUNativeAdsManager; - -/// Native 广告回调协议 -@protocol ABUNativeAdsManagerDelegate - -@optional - -/// Native 广告加载成功回调 -/// @param adsManager 广告管理对象 -/// @param nativeAdViewArray 广告视图,GroMore包装视图对象组,包括模板广告和自渲染广告 -- (void)nativeAdsManagerSuccessToLoad:(ABUNativeAdsManager *_Nonnull)adsManager nativeAds:(NSArray *_Nullable)nativeAdViewArray; - -/// Native 广告加载失败回调 -/// @param adsManager 广告管理对象 -/// @param error 加载出错信息 -- (void)nativeAdsManager:(ABUNativeAdsManager *_Nonnull)adsManager didFailWithError:(NSError *_Nullable)error; - -/// 暂不开放使用 -- (void)nativeAdsManager:(ABUNativeAdsManager *_Nonnull)adsManager didWaitingBiddingResultWithParameters:(NSDictionary *)parameters andResumeHandler:(void(^)(NSDictionary *_Nullable data, NSError *_Nullable error))handler; - -/// 暂不开放使用 -- (void)nativeAdsManagerDidFinishLoadAdnAd:(ABUNativeAdsManager *_Nonnull)adsManager nativeAd:(ABUNativeAdView *_Nullable)nativeAd error:(NSError *_Nullable)error; - -@end - -/// Native广告加载类 -@interface ABUNativeAdsManager : ABUBaseAd - -/// 广告构建方法,开发者可使用'ABUAdUnit'类创建协议对象,也可自行创建类实现协议 -/// @param slot 广告位ID -- (instancetype)initWithSlot:(id)slot; - -/// 快速广告构建方法 -/// @param unitID 广告位ID -/// @param adSize 广告视图大小 -- (instancetype)initWithAdUnitID:(NSString *)unitID adSize:(CGSize)adSize; - -/// 是否使用模板广告,只对支持模板广告的第三方SDK有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL getExpressAdIfCan; - -/// 是否使用GDT express 2.0,对GDT( ≥ 4.11.9)有效,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL useExpress2IfCanForGDT ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上结合GDT V4.12.80以上 Gdt的原生模板广告在客户端无需区分2.0和1.0"); - -/// 图片大小,包括视频媒体的大小设定 -@property (nonatomic, assign) CGSize imageOrVideoSize; - -/// 广告视图的尺寸,请勿设置为0 -@property (nonatomic, assign) CGSize adSize; - -/// 是否静音播放视频,是否真实静音由adapter确定,默认为NO,仅在广告加载前设置有效,优先以平台配置为准 -@property (nonatomic, assign) BOOL startMutedIfCan; - -/// 广告代理对象 -@property (nonatomic, weak) id delegate; - -/// 必要,设置广告详情跳转控制器 -@property (nonatomic, weak) UIViewController *rootViewController; - -/// 加载广告方法 -/// @param count 加载广告的数量,建议单次不超过3个,优先以平台上配置为准 -- (void)loadAdDataWithCount:(NSUInteger)count; - -- (void)loadAdData; - -/// 不再使用加载成功后回调的视图对象组时,可调用该方法释放占用的内存 -- (void)destory; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h.meta deleted file mode 100644 index d84da6d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUNativeAdsManager.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a79c9ddc564983249995044ef78dd17c -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h deleted file mode 100644 index 318f658..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// ABUPersonaliseConfigAdapter.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/31. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 个性化配置类 -@interface ABUPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithKey:(NSString *)key andBlock:(void(^)(void))block; - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUUnityPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'unity' of network instead", ios(2.0, 9.0)) -@interface ABUUnityPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUAdmobPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'admob' of network instead", ios(2.0, 9.0)) -@interface ABUAdmobPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUBaiduPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'baidu' of network instead", ios(2.0, 9.0)) -@interface ABUBaiduPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUPanglePersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'pangle' of network instead", ios(2.0, 9.0)) -@interface ABUPanglePersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUGdtPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'gdt' of network instead", ios(2.0, 9.0)) -@interface ABUGdtPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUMintegralPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'mintegral' of network instead", ios(2.0, 9.0)) -@interface ABUMintegralPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUSigmobPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'sigmob' of network instead", ios(2.0, 9.0)) -@interface ABUSigmobPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUKsPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'ks' of network instead", ios(2.0, 9.0)) -@interface ABUKsPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -FOUNDATION_EXTERN API_DEPRECATED("ABUKlevinPersonaliseConfigAdapter is deprecated. Use ABUPersonaliseConfigAdapter with a key 'klevin' of network instead", ios(2.0, 9.0)) -@interface ABUKlevinPersonaliseConfigAdapter : NSObject - -+ (void)configAdapterWithBlock:(void(^)(void))block API_DEPRECATED("Use ABUPersonaliseConfigAdapter instead.", ios(2.0, 9.0)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h.meta deleted file mode 100644 index 5c57b20..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9a0af8020a1ee0047bd4b37a69621cea -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h deleted file mode 100644 index 90fa98d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h +++ /dev/null @@ -1,68 +0,0 @@ -// -// ABUPersonaliseConfigAdapter_internal.h -// Pods -// -// Created by Makaiwen on 2021/5/31. -// - -#import "ABUPersonaliseConfigAdapter.h" - -@interface ABUPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUUnityPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUAdmobPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUBaiduPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUPanglePersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUGdtPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUMintegralPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUSigmobPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUKsPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end - -@interface ABUKlevinPersonaliseConfigAdapter () - -+ (BOOL)invokePersionaliseConfigWithKey:(NSString *)key; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h.meta deleted file mode 100644 index 5faa8a0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPersonaliseConfigAdapter_internal.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e5bf297228912e84b983ae056a34effe -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h deleted file mode 100644 index 132065e..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// ABUPlayState.h -// ABUAdSDK -// -// Created by wangchao on 2020/3/31. -// Copyright © 2020 bytedance. All rights reserved. -// - -#import - -typedef NS_ENUM (NSInteger, ABUPlayerPlayState) { - ABUPlayerStateFailed = 0, - ABUPlayerStateBuffering = 1, - ABUPlayerStatePlaying = 2, - ABUPlayerStateStopped = 3, - ABUPlayerStatePause = 4, - ABUPlayerStateDefalt = 5 -}; diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h.meta deleted file mode 100644 index 77d9f09..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPlayerPlayState.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cb3b145bff5b1fd498bc5551018d43cb -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h deleted file mode 100644 index af177c2..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// ABUPrivacyConfig+Private.h -// ABUAdSDK -// -// Created by CHAORS on 2021/8/24. -// - -#import "ABUPrivacyConfig.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol ABUCustomConfigAdapter; - -@interface ABUPrivacyConfig (Private) - -+ (instancetype _Nonnull)sharedInstance; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h.meta deleted file mode 100644 index d6fe87b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig+Private.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b7aaf38f06bd9e947b258e58c786017a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h deleted file mode 100644 index 509d4a6..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// ABUPrivacyConfig.h -// ABUAdSDK -// -// Created by CHAORS on 2021/8/24. -// - -#import - -/// 【可选】NSNumber,是否限制个性化广告:0-不限制,1-限制,默认为0。官方维护版本中只适用于CSJ、Ks、Sigmob、百度、GDT。 -const static NSString *kABUPrivacyLimitPersonalAds = @"ABUPrivacyLimitPersonalAds"; - -/// 【可选】NSNumber,是否限制程序化广告:0-不限制,1-限制,默认为0。官方维护版本中只适用于Ks。 -const static NSString *kABUPrivacyLimitProgrammaticAds = @"ABUPrivacyLimitProgrammaticAds"; - -/// 【可选】NSNumber,是否禁止CAID:0-不禁止,1-禁止,默认为0。官方维护版本中只适用于百度。 -const static NSString *kABUPrivacyForbiddenCAID = @"ABUPrivacyForbiddenCAID"; - -/// 【可选】NSNumber,是否在adn中使用位置,如果是,adn将自己获得纬度和经度,而不是使用传入的值(kABUPrivacyLongitude/kABUPrivacyLatitude)。官方维护版本中只适用于CSJ。 -const static NSString *kABUPrivacyCanLocation = @"ABUPrivacyCanLocation"; - -/// 【可选】NSNumber,经度的值。默认值是0.0。官方维护版本中只适用于CSJ。 -const static NSString *kABUPrivacyLongitude = @"ABUPrivacyLongitude"; - -/// 【可选】NSNumber,纬度的值。默认值是0.0。官方维护版本中只适用于CSJ。 -const static NSString *kABUPrivacyLatitude = @"ABUPrivacyLatitude"; - -/// 【可选】NSNumber,是成人或者儿童,2-儿童(<15),1-儿童(15-18岁), 0-成人,默认为0(成人)。官方维护版本中适用于CSJ/sigmob。 -const static NSString *kABUPrivacyNotAdult = @"ABUPrivacyNotAdult"; - - -@interface ABUPrivacyConfig : NSObject - -// 根据key配置相关隐私项 -+ (void)setPrivacyWithKey:(const NSString *)key andValue:(id)value; - -// 获取当前配置项 -+ (NSDictionary *)privacyConfig; - -@end - diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h.meta deleted file mode 100644 index 3e1d59d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUPrivacyConfig.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bf3128c22eb0ba547a84c375f1f2f545 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h deleted file mode 100644 index 97ff612..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h +++ /dev/null @@ -1,134 +0,0 @@ -// -// ABURewardVideoAd.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/25. -// - -#import "ABUBaseAd.h" -#import "ABURewardedVideoModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABURewardedVideoAd,ABUAdapterRewardAdInfo; - -/// 激励视频广告代理协议 -@protocol ABURewardedVideoAdDelegate -@optional - -/// 广告加载成功回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidLoad:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 广告加载失败回调 -/// @param rewardedVideoAd 广告管理对象 -/// @param error 错误信息 -- (void)rewardedVideoAd:(ABURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; - -/// 广告已加载视频素材回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidDownLoadVideo:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 广告展示回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidVisible:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 广告展示失败回调 -/// @param rewardedVideoAd 广告管理对象 -/// @param error 展示失败的原因 -- (void)rewardedVideoAdDidShowFailed:(ABURewardedVideoAd *_Nonnull)rewardedVideoAd error:(NSError *_Nonnull)error; - -/// 广告点击详情事件回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidClick:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 广告点击跳过事件回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidSkip:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 广告关闭事件回调 -/// @param rewardedVideoAd 广告管理对象 -- (void)rewardedVideoAdDidClose:(ABURewardedVideoAd *)rewardedVideoAd; - -/// 请求的服务器验证成功包括C2C和S2S方法回调 -/// @param rewardedVideoAd 广告管理对象 -/// @param verify 是否验证通过 -- (void)rewardedVideoAdServerRewardDidSucceed:(ABURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用 rewardedVideoAdServerRewardDidSucceed:rewardInfo:verify:"); - -/// 请求的服务器验证成功包括C2C和S2S方法回调 -/// @param rewardedVideoAd 广告管理对象 -/// @param rewardInfo 奖励发放验证信息 -/// @param verify 是否验证通过 -- (void)rewardedVideoAdServerRewardDidSucceed:(ABURewardedVideoAd *)rewardedVideoAd rewardInfo:(ABUAdapterRewardAdInfo *_Nullable)rewardInfo verify:(BOOL)verify; - -/// 广告视频播放完成或者出错回调 -/// @param rewardedVideoAd 广告管理对象 -/// @param error 播放出错时的信息,播放完成时为空 -- (void)rewardedVideoAd:(ABURewardedVideoAd *)rewardedVideoAd didPlayFinishWithError:(NSError *_Nullable)error; - -@end - -@interface ABURewardedVideoAd : ABUBaseAd - -- (instancetype)initWithAdUnitID:(NSString *)unitID; - -/// 激励广告的自定义数据 -@property (nonatomic, strong) ABURewardedVideoModel *rewardedVideoModel; - -@property (nonatomic, weak) id delegate; - -/// 再看一次的回调代理;在触发"再看一次"后,展示回调后的一些回调会依此触发,通过该标识判断当次回调是否属于再看一次的回调。支持的adn:Pangle/KS; -/// 再看一次可触发的会滴:visiable/click/clickSkip/playFinesh/rewardedVideoAdServerRewardDidSucceed -@property (nonatomic, weak) id rewardPlayAgainDelegate; - -/** - 2021-02 - optional - 设定是否静音播放视频,YES = 静音,NO = 非静音 - PS: - ①仅gdt、ks、mtg支持设定mute - ②仅适用于视频播放器设定生效 - 重点:请在loadAdData前设置,否则不生效 - */ -@property (nonatomic, assign) BOOL mutedIfCan; - -/** - Required - Get a express Ad if SDK can.Default is NO. - 必须设置且只对支持模板广告的第三方SDK有效,默认为NO. - */ -@property (nonatomic, assign) BOOL getExpressAdIfCan ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,在SDK V2900以上激励视频客户端将无需区分模板非模板"); - -/// 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 展示广告 -/// @param viewController 跳转控制器,必传 -- (BOOL)showAdFromRootViewController:(UIViewController *)viewController; - -/// 展示广告 -/// @param viewController 跳转控制器,必传 -/// @param extraInfos 扩展信息,可选,与adapter及ADN是否实现有关,字段参见ABUADSDKConst.h中全屏视频、激励视频展示扩展部分 -- (BOOL)showAdFromRootViewController:(UIViewController *)viewController extraInfos:(NSDictionary *_Nullable)extraInfos; - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限;nil为无权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h.meta deleted file mode 100644 index 9664c49..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c499c057d0d65254bbe203caef70770d -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h deleted file mode 100644 index 7b2fa0d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// ABURewardedVideoModel+Private.h -// Ads-Mediation-CN -// -// Created by CHAORS on 2021/11/26. -// - -#import "ABURewardedVideoModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ABURewardedVideoModel (Private) - -- (NSString *)toString; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h.meta deleted file mode 100644 index 31fb1fa..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel+Private.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8391e79a87f69a24ea90c7787c77c929 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h deleted file mode 100644 index 184874d..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// ABURewardedVideoModel.h -// Ads-Mediation-CN -// -// Created by CHAORS on 2021/11/26. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 开发者提供给GroMore和ADN的奖励信息,适用于ADN的服务端验证和GroMore的S2S验证 -@interface ABURewardedVideoModel : NSObject -/// 可选,三方用户ID。主要用于奖励发放,是服务器到服务器的回调传递参数。在非服务器回调模式下,当视频播放结束时,它也将被透传。是否有效依赖于adapter和adn。 -@property (nonatomic, copy) NSString *userId; - -/// 可选,奖励名称。是否有效依赖于adapter和adn。 -@property (nonatomic, copy) NSString *rewardName; - -/// 可选,奖励金额。是否有效依赖于adapter和adn。 -@property (nonatomic, assign) NSInteger rewardAmount; - -/// 可选,可序列化字符串。是否有效依赖于adapter和adn。 -@property (nonatomic, copy) NSString *extra; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h.meta deleted file mode 100644 index 7bc7a61..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURewardedVideoModel.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b22847a3995e6464ca6aecda18da47bd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h deleted file mode 100644 index bc6b6c6..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// ABURitInfo.h -// ABUAdSDK -// -// Created by CHAORS on 2021/10/25. -// - -#import - -#import "ABUAdSDKConst.h" - - -@interface ABURitInfo : NSObject - -/// ADN的名称,与平台配置一致,自定义ADN时为ADN唯一标识 -@property (nonatomic, copy, readonly, nonnull) NSString * adnName; - -/// 自定义ADN的名称,与平台配置一致,非自定义ADN为nil -@property (nonatomic, copy, readonly, nullable) NSString * customAdnName; - -// 代码位 -@property (nonatomic, copy, readonly, nonnull) NSString *slotID; - -// 价格标签,多阶底价下有效 -@property (nonatomic, copy, readonly, nullable) NSString *levelTag; - -// 返回价格,nil为无权限 -@property (nonatomic, copy, readonly, nullable) NSString *ecpm; - -// 广告类型 -@property (nonatomic, assign, readonly) ABUBiddingType biddingType; - -// 额外错误信息,一般为空(扩展字段) -@property (nonatomic, copy, readonly, nullable) NSString *errorMsg; - -// adn提供的真实广告加载ID,可为空 -@property (nonatomic, copy, readonly, nullable) NSString *requestID; - -@end - diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h.meta deleted file mode 100644 index 5a47825..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABURitInfo.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 908c45349c219d34da4f849b85d52ef7 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h deleted file mode 100644 index a219887..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// ABUSdkInitConfig.h -// ABUAdSDK -// -// Created by wangchao on 2020/2/24. -// Copyright © 2020 bytedance. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class ABUUserConfig; - -/// adn初始化配置信息 -@interface ABUSdkInitConfig : NSObject - -/// 用户自定义配置 -@property (nonatomic, strong, readonly) ABUUserConfig *userConfig; - -/// appID -@property (nonatomic, copy, readonly) NSString *appID; - -/// appKey -@property (nonatomic, copy, readonly) NSString *appKey; - -/// adn的标识 -@property (nonatomic, copy, readonly) NSString *name; - -/// 是否可用状态 -@property (nonatomic, assign, readonly) BOOL valid; - -/// 是否是自定义adapter,白名单用户权限 -@property (nonatomic, assign, readonly) BOOL custom; - -/// 自定义adapter初始化的配置类名,该类对象遵循ABUCustomConfigAdapter协议 -@property (nonatomic, copy, readonly) NSString *customAdnClassName; - -/// 自定义adapter banner广告的配置类名,该类对象遵循ABUCustomBannerAdapter协议 -@property (nonatomic, copy, readonly) NSString *customBannerAdapterClassName; - -/// 自定义adapter 插屏广告的配置类名,该类对象遵循ABUCustomInterstitialAdapter协议 -@property (nonatomic, copy, readonly) NSString *customInterstitialAdapterClassName; - -/// 自定义adapter 激励视频广告的配置类名,该类对象遵循ABUCustomRewardedVideoAdapter协议 -@property (nonatomic, copy, readonly) NSString *customRewardedVideoAdapterClassName; - -/// 自定义adapter 全屏广告的配置类名,该类对象遵循ABUCustomFullscreenVideoAdapter协议 -@property (nonatomic, copy, readonly) NSString *customFullscreenVideoAdapterClassName; - -/// 自定义adapter 开屏广告的配置类名,该类对象遵循ABUCustomSplashAdapter协议 -@property (nonatomic, copy, readonly) NSString *customSplashAdapterClassName; - -/// 自定义adapter native广告的配置类名,该类对象遵循ABUCustomNativeAdapter协议 -@property (nonatomic, copy, readonly) NSString *customNativeAdapterClassName; - -/// 自定义adapter draw广告的配置类名,该类对象遵循ABUCustomDrawAdapter协议 -@property (nonatomic, copy, readonly) NSString *customDrawAdapterClassName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h.meta deleted file mode 100644 index 547e227..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSdkInitConfig.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b254f65ade256a640aef6d18af6b2072 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h deleted file mode 100644 index 3af80b0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// ABUSize.h -// BUAdSDK -// -// Copyright © 2017 bytedance. All rights reserved. -// - -#import - -/** - Get the view with the best results by using the predefined size in pixels. - When it comes to view display, it is recommended to use the same scaling. -*/ -typedef NS_ENUM (NSInteger, ABUProposalSize) { - ABUProposalSize_Banner600_90, - ABUProposalSize_Banner600_100, - ABUProposalSize_Banner600_150, - ABUProposalSize_Banner600_260, - ABUProposalSize_Banner600_286, - ABUProposalSize_Banner600_300, - ABUProposalSize_Banner600_388, - ABUProposalSize_Banner600_400, - ABUProposalSize_Banner600_500, - ABUProposalSize_Feed228_150, - ABUProposalSize_Feed690_388, - ABUProposalSize_Interstitial600_400, - ABUProposalSize_Interstitial600_600, - ABUProposalSize_Interstitial600_900, - ABUProposalSize_DrawFullScreen -}; - -@interface ABUSize : NSObject - -// width unit pixel. -@property (nonatomic, assign) NSInteger width; - -// height unit pixel. -@property (nonatomic, assign) NSInteger height; - -- (NSDictionary *)dictionaryValue; - -@end - -@interface ABUSize (BU_SizeFactory) -+ (instancetype)sizeBy:(ABUProposalSize)proposalSize; -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h.meta deleted file mode 100644 index 3b91427..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSize.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d3164dea06812c444968793e2fc9f85d -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h deleted file mode 100644 index 4a61d8b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h +++ /dev/null @@ -1,151 +0,0 @@ -// -// ABUNewSplashAd.h -// ABUAdSDK -// -// Created by bytedance on 2021/6/8. -// - -#import "ABUBaseAd.h" -#import "ABUSplashZoomOutView.h" -#import "ABUSplashCardView.h" -#import "ABUSplashUserData.h" -#import "ABUAdSDKConst.h" - -NS_ASSUME_NONNULL_BEGIN - -@class ABUSplashAd; -@class ABUAdPackage; - -/// 开屏广告回调协议 -@protocol ABUSplashAdDelegate - -@optional - -/// 广告加载成功回调 -/// @param splashAd 广告管理对象 -- (void)splashAdDidLoad:(ABUSplashAd *)splashAd; - -/// 广告加载失败回调 -/// @param splashAd 广告管理对象 -/// @param error 出错信息 -- (void)splashAd:(ABUSplashAd *)splashAd didFailWithError:(NSError *_Nullable)error; - -/// 广告即将展示回调 -/// @param splashAd 广告管理对象 -- (void)splashAdWillVisible:(ABUSplashAd *)splashAd; - -/// 广告展示失败回调 -/// @param splashAd 广告管理对象 -/// @param error 展示失败原因 -- (void)splashAdDidShowFailed:(ABUSplashAd *_Nonnull)splashAd error:(NSError *)error; - -/// 广告点击事件回调 -/// @param splashAd 广告管理对象 -- (void)splashAdDidClick:(ABUSplashAd *)splashAd; - -/// 广告关闭事件回调 -/// @param splashAd 广告管理对象 -- (void)splashAdDidClose:(ABUSplashAd *)splashAd; - -/// 广告即将展示广告详情页回调 -/// @param splashAd 广告管理对象 -- (void)splashAdWillPresentFullScreenModal:(ABUSplashAd *)splashAd; - -/// 关闭广告详情页回调 -/// @param splashAd 广告管理对象 -- (void)splashAdWillDismissFullScreenModal:(ABUSplashAd *)splashAd; - -/// 广告倒计时结束回调 -/// @param splashAd 广告管理对象 -- (void)splashAdCountdownToZero:(ABUSplashAd *)splashAd; - -/// 模板开屏广告播放完成回调 -/// @param splashAd 广告管理对象 -/// @param error 播放出现的错误信息 -- (void)splashAd:(ABUSplashAd *)splashAd didPlayFinishWithError:(NSError *)error; - -/// 开屏广告播放完成回调 -/// @param splashAd 广告管理对象 -/// @param error 播放出现的错误信息 -- (void)splashAdExpressViewDidPlayFinish:(ABUSplashAd *)splashAd error:(NSError *)error ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用 splashAd:didPlayFinishWithError:"); -@end - -/// 开屏广告管理类 -@interface ABUSplashAd : ABUBaseAd - -/// 广告位ID,只读 -@property (readonly) NSString *adUnitID; - -/// 开屏广告构建方法 -/// @param unitID 广告位ID -- (instancetype)initWithAdUnitID:(NSString *)unitID; - -/// 代理回调对象 -@property (nonatomic, weak) id delegate; - -/// 最大等待加载时长,单位秒,,默认3秒。实现由adapter确定 -@property (nonatomic, assign) NSTimeInterval tolerateTimeout; - -/// 是否需要开启zoomout功能,需要ADN及adapter支持 -@property (nonatomic, assign) BOOL needZoomOutIfCan; - -/// 【必选】广告事件跳转控制器 -@property (nonatomic, weak, nullable) UIViewController *rootViewController; - -/// 展示广告 -/// @param window 展示window,具体由adapter实现 -- (BOOL)showInWindow:(UIWindow *)window; - -/// [可选]在广告位配置拉取失败后,会使用传入的rit和appID兜底,进行广告加载,需要在创建manager时就调用该接口 -- (void)setUserData:(ABUSplashUserData *)userData error:(NSError **)error; - -/// 自定义底部视图,可以设置一些自定义元素,例如LOGO。如果不设置,广告将按照全屏展示。底部视图最大高度不能超过屏幕高度的25%,否则将按照约定最大高度适配 -@property (nonatomic, strong, nullable) UIView *customBottomView; - -/// 销毁广告,建议在不需要展示广告时调用,如close时 -- (void)destoryAd; - -/// optional. Config the behaviour of click splash view.Deafult value is ABUSplashButtonTypeFullScreen.Now only valid for adn:pangle, baidu. -@property (nonatomic, assign) ABUSplashButtonType splashButtonType; - -/// zoom out 视图,需adn和adapter支持,可能为空 -@property (nonatomic, strong, readonly, nullable) ABUSplashZoomOutView *zoomOutView; - -/// The display priority of cardview is higher than that of zoomview. Now only valid for adn:pangle. -@property (nonatomic, assign) BOOL supportCardView; // default is NO - -/// When it is support splash card advertisement, it has value. Now only valid for adn:pangle. -@property (nonatomic, strong, readonly, nullable) ABUSplashCardView *cardView; - -@property (nonatomic, assign, readonly) BOOL isReady; - -/// 广告的扩展信息,可能为nil -- (NSDictionary *_Nullable)extraData; - -/// 返回显示广告对应的rit -- (NSString *)getAdNetworkRitId ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用`getShowEcpmInfo`代替"); - -/// 返回显示广告对应的ecpm,当没有权限访问该部分会返回-3 单位:分 -- (NSString *)getPreEcpm ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用`getShowEcpmInfo`代替"); - -/// 返回显示广告对应的Adn名称 -- (NSString *)getAdNetworkPlatformName ABU_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用`getShowEcpmInfo`代替"); - -/// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3' -- (ABURitInfo *)getShowEcpmInfo; - -/// 填充后可调用,返回当前最佳广告的ecpm;当为server bidding ad时访问需要白名单权限;nil为无权限 -- (ABURitInfo *)getCurrentBestEcpmInfo; - -/// 填充后可调用,但推荐展示后调用,返回竞价广告的ecpm;当为server bidding ad时访问需要白名单权限; -- (NSArray *)multiBiddingEcpmInfos; - -/// 填充后可调用, 返回广告缓存池内所有信息;nil为无权限 -- (NSArray *)cacheRitList; - -/// 填充后可调用,获取广告中的extra信息。目前只支持穿山甲,并且只支持获取coupon, live_room, product信息。 -- (nullable NSDictionary *)getMediaExtraInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h.meta deleted file mode 100644 index 4b8bfa3..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashAd.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e26bc0322b019034a8167eacaf8fa89c -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h deleted file mode 100644 index d2bc47b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// ABUSplashCardView.h -// Ads-Mediation-CN -// -// Created by ByteDance on 2022/5/26. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class ABUSplashCardView; - -@protocol ABUSplashCardViewDelegate -@optional - -/// 开屏广告Cardview点击事件回调 -/// @param splashCardView card view -- (void)splashCardViewAdDidClick:(ABUSplashCardView *_Nonnull)splashCardView; - -/// 开屏广告Cardview关闭事件回调 -/// @param splashCardView card view -- (void)splashCardViewAdDidClose:(ABUSplashCardView *_Nonnull)splashCardView; - -/// 开屏广告Cardview已经打开全屏页面事件回调 -/// @param splashCardView card view -- (void)splashCardViewAdDidPresentFullScreenModal:(ABUSplashCardView *_Nonnull)splashCardView; - -/// 开屏广告Cardview已经关闭全屏页面事件回调 -/// @param splashCardView card view -- (void)splashCardViewAdDidDismissFullScreenModal:(ABUSplashCardView *_Nonnull)splashCardView; - -@end - -@interface ABUSplashCardView : UIView - -@property (nonatomic, weak, nullable) id delegate; - -- (void)showSplashCardInRootVC:(UIViewController *)rootVC; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h.meta deleted file mode 100644 index 52a9b86..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashCardView.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ed4240b96871e88418a179d52fb73e7d -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h deleted file mode 100644 index dd49006..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// ABUNewSplashUserData.h -// ABUAdSDK -// -// Created by bytedance on 2021/7/30. -// - -#import -#import "ABUAdSDKConst.h" - -NS_ASSUME_NONNULL_BEGIN - -/// 开屏广告兜底数据 -@interface ABUSplashUserData : NSObject - -/// adn的名字,请使用如下值 'pangle','baidu','gdt','ks',其他值可能导致无法加载广告 -@property (nonatomic, copy) NSString *adnName; - -// adn对应代码位 -@property (nonatomic, copy) NSString *_Nonnull rit; - -// adn对应appID -@property (nonatomic, copy) NSString *_Nonnull appID; - -// adn对应appKey, 没有时可不传 -@property (nonatomic, copy) NSString *_Nullable appKey; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h.meta deleted file mode 100644 index 788e5c2..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashUserData.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d813bbc329989de458623a89d9acf960 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h deleted file mode 100644 index 355de11..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// ABUNewSplashZoomOutView.h -// ABUAdSDK -// -// Created by bytedance on 2021/8/13. -// - -#import -#import "ABUZoomOutViewProperty.h" -#import "ABUAdSDKConst.h" - -NS_ASSUME_NONNULL_BEGIN - - -@class ABUSplashZoomOutView; - -/// zoom out view代理协议 -@protocol ABUZoomOutSplashAdDelegate -@optional -/// This method is called when splash ad is clicked. -/// @param splashZoomOutView zoom out view - - -/// 开屏广告zoomoutview点击事件回调 -/// @param splashZoomOutView zoom out view -- (void)splashZoomOutViewAdDidClick:(UIView *_Nonnull)splashZoomOutView; - -/// 开屏广告zoomoutview关闭事件回调 -/// @param splashZoomOutView zoom out view -- (void)splashZoomOutViewAdDidClose:(UIView *_Nonnull)splashZoomOutView; - -/// 开屏广告zoomoutview已经打开全屏页面事件回调 -/// @param splashZoomOutView zoom out view -- (void)splashZoomOutViewAdDidPresentFullScreenModal:(UIView *_Nonnull)splashZoomOutView; - -/// 开屏广告zoomoutview已经关闭全屏页面事件回调 -/// @param splashZoomOutView zoom out view -- (void)splashZoomOutViewAdDidDismissFullScreenModal:(UIView *_Nonnull)splashZoomOutView; - -@end - -/// 开屏 zoom out view -@interface ABUSplashZoomOutView : UIView - -/// 跳转控制器 -@property (nonatomic, weak, nullable) UIViewController *rootViewController; - -/// 代理对象 -@property (nonatomic, weak, nullable) id delegate; - -/// 建议展示尺寸 -@property (nonatomic, assign, readonly) CGSize suggestedSize; - -/// zoom out view 是否有自己的动画实现 -@property (nonatomic, assign, readonly) BOOL hasAnimation; - -/// 开屏点睛处理时机 -@property (nonatomic, assign) ABUAddOccasionType addOccasionType; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h.meta deleted file mode 100644 index 2eb4e30..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUSplashZoomOutView.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 0eda8c215e79cc347b8e224cbd644a7f -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h deleted file mode 100644 index 76bb6a6..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// ABUUserConfig.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/20. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 日志级别 -typedef NS_ENUM (NSInteger, ABUAdSDKLogLevel) { - ABUAdSDKLogLevelNone = 0, - ABUAdSDKLogLevelError = 1, - ABUAdSDKLogLevelDebug = 1 -}; - -typedef NS_ENUM (NSInteger, ABUAdSDKLogLanguage) { - ABUAdSDKLogLanguageCH, - ABUAdSDKLogLanguageEN -}; - -// Theme mode for iOS. -typedef NS_ENUM(NSInteger, ABUAdSDKThemeStatus) { - ABUAdSDKThemeStatus_None = -1, - ABUAdSDKThemeStatus_Normal = 0, - ABUAdSDKThemeStatus_Night = 1, -}; - -@interface ABUUserConfig : NSObject - -/// 是否开启日志输出 -@property (nonatomic, assign) BOOL logEnable; - -/// 设置广告主题,扩展暗黑模式 -@property (nonatomic, assign) ABUAdSDKThemeStatus themeStatus; - -/// 设置扩展设备信息,如不了解该功能,请勿使用。 如@"[{\"device_id\":\"62271333038\"}]" -@property (nonatomic, copy) NSDictionary *extraDeviceMap; - -/// 就版本兼容,是否开启调试模式。真实情况由adapter实现,官方adapter中Unity可用 -@property (nonatomic, assign) BOOL testMode; - -/// 设置预先从平台下载的SDKConfig文件路径,当首次安装网络请求SDKConfig失败时会使用。 -@property (nonatomic, copy, nullable) NSString *advanceSDKConfigPath; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h.meta deleted file mode 100644 index 3eb4564..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserConfig.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f2993d80de297aa4cb0ff33d1c5d1dd8 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h deleted file mode 100644 index f5e1879..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// ABUUserInfoForSegment.h -// ABUAdSDK -// -// Created by heyinyin on 2021/2/25. -// - -#import - -typedef NS_ENUM (NSInteger, ABUUserInfoGender) { - ABUUserInfoGenderFemale = 0, - ABUUserInfoGenderMale = 1, - ABUUserInfoGenderUnknown = 2, - ABUUserInfoGenderUnSet = 3 //default,can't use. -}; - -// 兼容旧版本 -typedef ABUUserInfoGender ABUUserInfo_Gender; -#define ABUUserInfo_Gender_Female ABUUserInfoGenderFemale -#define ABUUserInfo_Gender_Male ABUUserInfoGenderMale -#define ABUUserInfo_Gender_Unknown ABUUserInfoGenderUnknown -#define ABUUserInfo_Gender_UnSet ABUUserInfoGenderUnSet - -/// 流量分组信息 -@interface ABUUserInfoForSegment : NSObject -/// user_id -@property (nonatomic, copy) NSString *user_id; -/// 渠道 -@property (nonatomic, copy) NSString *channel; -/// 子渠道 -@property (nonatomic, copy) NSString *sub_channel; -/// 用户年龄 -@property (nonatomic, assign) NSInteger age; -/// 用户性别 -@property (nonatomic, assign) ABUUserInfoGender gender; -/// 价值分组 -@property (nonatomic, copy) NSString *user_value_group; - -/// 自定义设置 -/** - 要求: - 自定义参数key&value要求均为string - 字符为数字,字母,"-","_"任意组合 - 长度上限为100 - */ -@property (nonatomic, copy) NSDictionary *customized_id; -@end - diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h.meta deleted file mode 100644 index 599ece4..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUUserInfoForSegment.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c369eb6ba0160de409d09f0aa20c2258 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h deleted file mode 100644 index 475228a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// ABUVersion.h -// ABUAdSDK -// -// Created by Makaiwen on 2021/5/31. -// - -#import - -#ifndef ABU_VERSION_H_ -#define ABU_VERSION_H_ - -struct ABUVersion { - NSInteger great; // Great version. - NSInteger major; // Major version. - NSInteger minor; // Minor version. - NSInteger patch; // Patch version. -}; -typedef struct ABUVersion ABUVersion; - -/// create a version struct by values -static inline ABUVersion ABUVersionMake(NSUInteger great, NSUInteger major, NSUInteger minor, NSUInteger patch); - -/// create a version struct by string, 4 values required, if less than 4, will be 0 from great, e.g @"1.2.3", great value is 0 -static inline ABUVersion ABUVersionFromString(NSString *string); - -/// convert version struct to string, may be called for log most -static inline NSString *NSStringFromABUVersion(ABUVersion version); - -/// compare two versions, first > second = 1, first < second = -1, first == second = 0 -static inline int ABUVersionCompare(ABUVersion version1, ABUVersion version2); - -/// compare two versions by string, ABUVersionCompare method will be called -static inline int ABUVersionCompareByString(NSString *version1, NSString *version2); - -#pragma mark - Functions - -static inline -ABUVersion ABUVersionMake(NSUInteger great, NSUInteger major, NSUInteger minor, NSUInteger patch) { - ABUVersion version; - version.great = great; - version.major = major; - version.minor = minor; - version.patch = patch; - return version; -} - -static inline -ABUVersion ABUVersionFromString(NSString *string) { - NSArray *vcs = [string componentsSeparatedByString:@"."]; - int limitCount = 4; - ABUVersion version = {0}; - int minCount = MIN(limitCount, (int) vcs.count); - NSInteger *p = (NSInteger *) &version; - for (int i = 0; i < minCount; i++) { - p[i] = [vcs[i] integerValue]; - } - return version; -} - -static inline -NSString *NSStringFromABUVersion(ABUVersion version) { - NSInteger *p = (NSInteger *) &version; - NSMutableArray *list = [NSMutableArray arrayWithCapacity:4]; - for (int i = 0; i < 4; i++) { - if (p[i] == 0 && list.count == 0) continue; - [list addObject:@(p[i])]; - } - - return [list componentsJoinedByString:@"."]; -} - -static inline -int ABUVersionCompare(ABUVersion version1, ABUVersion version2) { - NSInteger *p1 = (NSInteger *) &version1; - NSInteger *p2 = (NSInteger *) &version2; - for (int i = 0; i < 4; i++) { - if (p1[i] == p2[i]) continue; - if (p1[i] > p2[i]) return 1; - return -1; - } - return 0; -} - -static inline -int ABUVersionCompareByString(NSString *version1, NSString *version2) { - ABUVersion v1 = ABUVersionFromString(version1); - ABUVersion v2 = ABUVersionFromString(version2); - return ABUVersionCompare(v1, v2); -} - -#endif diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h.meta deleted file mode 100644 index 8286666..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVersion.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 55fa6b3aa8ec1f04d826fec9914ee30b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h deleted file mode 100644 index 0b105e9..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// Created by bytedance on 2022/5/6. -// - -#import - -/// 待上报的视频事件枚举类型 -typedef NS_ENUM(NSInteger, ABUVideoAdEvent) { - ABUVideoAdEventVideoDidPlay = 1, // 视频开始播放 - ABUVideoAdEventVideoDidFinish = 2, // 视频播放完成,无异常 - ABUVideoAdEventVideoDidPause = 3, // 视频暂停 - ABUVideoAdEventVideoDidResume = 4, // 视频恢复播放 - ABUVideoAdEventVideoDidBreak = 5, // 视频意外终止,如跳过、视频切出屏幕等 - ABUVideoAdEventVideoDidClick = 6, // 视频被点击 - ABUVideoAdEventVideoDidStartFailed = 7, // 视频开始播放时出现异常 - ABUVideoAdEventVideoDidPlayFailed = 8, // 视频播放中出现异常 - -}; - -typedef NSString * ABUVideoAdEventParameter; - -/// 视频总时长,NSNumber类型,单位s -extern ABUVideoAdEventParameter const ABUVideoAdEventParameterVideoTotalDurationKey; -/// 视频播放时长,NSNumber类型,单位s -extern ABUVideoAdEventParameter const ABUVideoAdEventParameterVideoCurrentDurationKey; -/// 视频出现异常原因,NSError类型 -extern ABUVideoAdEventParameter const ABUVideoAdEventParameterErrorKey; diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h deleted file mode 100644 index ffc5251..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// Created by bytedance on 2022/5/6. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// 自渲染视频类广告事件上报类 -@interface ABUVideoAdReporter : NSObject - -/// 上报视频开始播放事件 -- (void)didStartPlayVideo; -/// 上报视频播放完成事件 -- (void)didFinishVideo; -/// 上报视频播放暂停事件 -- (void)didPauseVideoWithCurrentDuration:(NSTimeInterval)duration; -/// 上报视频播放继续事件 -- (void)didResumeVideoWithCurrentDuration:(NSTimeInterval)duration; -/// 上报视频播放中止事件 -- (void)didBreakVideoWithCurrentDuration:(NSTimeInterval)duration; -/// 上报视频视图点击事件 -- (void)didClickVideoViewWithCurrentDuration:(NSTimeInterval)duration; -/// 上报视频播放失败事件 -- (void)didPlayFailedWithError:(NSError *)error; -/// 上报视频无法播放事件 -- (void)didPlayStartFailedWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h.meta deleted file mode 100644 index 283f0d1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReporter.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ea7fcddc52552e24f815a28dd97856a7 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h deleted file mode 100644 index 07629ee..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h +++ /dev/null @@ -1,77 +0,0 @@ -// -// ABUViewTracker.h -// ABUAdSDK -// -// Created by wangchaop on 22/06/2020. -// Copyright © 2017年 bytedance. All rights reserved. -// - -#import -#import - -typedef NS_ENUM (NSInteger, ABUViewTrackerRepeatType) { - ABUViewTrackerRepeatType_none = 1, //上报一次 - ABUViewTrackerRepeatType_repeat = 2, //重复检测上报 -}; - -typedef NS_ENUM (NSInteger, ABUViewTrackerLastPresentation) { - ABUViewTrackerLastPresentation_outScreen = 0, //上次检测的上报时在屏幕外 - ABUViewTrackerLastPresentation_inScreen = 1, //上次检测的上报时在屏幕上 -}; - -@protocol ABUViewTracker -@property (nonatomic, assign) BOOL isWitness; -@property (nonatomic, assign) ABUViewTrackerRepeatType repeatType; -@property (nonatomic, assign) ABUViewTrackerLastPresentation lastPresentation; -@property (nonatomic, assign) NSTimeInterval showTimestamp; -@property (nonatomic, copy) void (^ showEvent)(id); -@property (nonatomic, copy) void (^ hideEvent)(id); -@property (nonatomic, strong) NSDictionary *extra; -@property (nonatomic, strong) id admodel; - -- (BOOL)invalid; -- (BOOL)checkIfViewInScreen; -- (void)snapShot; - -@end - -/* - BUViewTracker用于单个view - */ -@interface ABUViewTracker : NSObject -@property (nonatomic, weak) UIView *view; -@property (nonatomic, strong) id admodel; -@property (nonatomic, strong) NSDictionary *extra; -@property (nonatomic, assign) BOOL isWitness; -@property (nonatomic, assign) ABUViewTrackerRepeatType repeatType; -@property (nonatomic, assign) ABUViewTrackerLastPresentation lastPresentation; -@property (nonatomic, copy) void (^ showEvent)(id tracker); -@property (nonatomic, copy) void (^ hideEvent)(id tracker); -@property (nonatomic, assign) NSTimeInterval showTimestamp; -@property (nonatomic, copy) NSString *source; -@property (nonatomic, copy) NSString *tag; - -- (BOOL)checkIfViewInScreen; -- (BOOL)invalid; - -@end - -/* - ABUNativeViewTracker用于多个view - */ -@interface ABUNativeViewTracker : NSObject -@property (nonatomic, strong) NSPointerArray *views; -@property (nonatomic, strong) id admodel; -@property (nonatomic, strong) NSDictionary *extra; -@property (nonatomic, assign) BOOL isWitness; -@property (nonatomic, assign) ABUViewTrackerRepeatType repeatType; -@property (nonatomic, assign) ABUViewTrackerLastPresentation lastPresentation; -@property (nonatomic, copy) void (^ showEvent)(id); -@property (nonatomic, copy) void (^ hideEvent)(id); -@property (nonatomic, assign) NSTimeInterval showTimestamp; -@property (nonatomic, copy) NSString *tag; - -- (BOOL)checkIfViewInScreen; -- (BOOL)invalid; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h.meta deleted file mode 100644 index 81b23ea..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTracker.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a25a0c6cdbe67e34eb3aaa385432aa32 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h deleted file mode 100644 index dd0fc12..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// ABUViewTrackerHelper.h -// ABUAdSDK -// -// Created by wangchaop on 22/06/2020. -// Copyright © 2018年 bytedance. All rights reserved. -// - -#import -#import - -@interface ABUViewTrackerHelper : NSObject - -+ (BOOL)checkIfViewInScreen:(UIView *)view; - -/// 当前屏幕内展示的面积 -+ (CGFloat)visibleAreaWithView:(UIView *)view; - -@end diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h.meta deleted file mode 100644 index 4a240ae..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUViewTrackerHelper.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8a631c40550450242a25607869c9bb63 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h deleted file mode 100644 index 1dfaf0c..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// ABUZoomOutViewProperty.h -// ABUAdSDK -// -// Created by bytedance on 2021/9/28. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -// 开屏点睛处理时机 -typedef NS_ENUM (NSInteger, ABUAddOccasionType) { - ABUAddOccasionTypeWhenLoad = 0, // 需要在load回调里处理开屏点睛视图ABUSplashZoomOutView,eg:gdt - ABUAddOccasionTypeWhenClose, // 需要在close回调里处理开屏点睛视图ABUSplashZoomOutView,eg:pangle -}; - -/// 开屏点睛属性类 -@interface ABUZoomOutViewProperty : NSObject - -/// 点睛的展示尺寸 -@property (nonatomic, assign) CGSize size; - -/// 是否自己有动画 -@property (nonatomic, assign) BOOL hasAnimation; - -/// 处理时机 -@property (nonatomic, assign) ABUAddOccasionType addOccasionType; -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h.meta deleted file mode 100644 index 9ff669b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUZoomOutViewProperty.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 99f5db0a18d08f145aaa2d58e6b72612 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h deleted file mode 100644 index 885955e..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Ads-Mediation-CN.h -// Ads-Mediation-CN -// -// Created by bytedance on 2021/11/19. -// - -#import "ABUAdSDK.h" diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h.meta deleted file mode 100644 index c1ec05a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/Ads-Mediation-CN.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ba6ebec84299c7847983cfbbf0407547 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h deleted file mode 100644 index 5ee848a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// UIWindow+GroMore.h -// ABUAdSDK -// -// Created by bytedance on 2021/8/23. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface UIWindow (GroMore) - -- (UIViewController *)abu_topViewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h.meta deleted file mode 100644 index 5c47555..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/UIWindow+GroMore.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6e9b199e12b7ac94f842989416f3a8df -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules.meta deleted file mode 100644 index 4d560ed..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3cc3d40f607fd3640bb9d2e05ad40a7c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap deleted file mode 100644 index affea4a..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module ABUAdSDK { - umbrella header "ABUAdSDK.h" - - export * - module * { export * } -} diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap.meta deleted file mode 100644 index 10d0a1f..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Modules/module.modulemap.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3afadb4d8b637084d8996216d764d855 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework.meta deleted file mode 100644 index 2f409ad..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework.meta +++ /dev/null @@ -1,28 +0,0 @@ -fileFormatVersion: 2 -guid: 7b02184c8ccbf6046bfa5a39710b15ea -folderAsset: yes -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/AnyThinkMobrainAdapter_Plus b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/AnyThinkMobrainAdapter_Plus deleted file mode 100644 index e69de29..0000000 diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/AnyThinkMobrainAdapter_Plus.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/AnyThinkMobrainAdapter_Plus.meta deleted file mode 100644 index a87e37b..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/AnyThinkMobrainAdapter_Plus.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b1f44b2d609cb374c98eb715a7e18d3b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers.meta deleted file mode 100644 index 5e0d556..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1ea2e237858e8974a96e9c24e99bb817 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h deleted file mode 100644 index 983b157..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// ATGromoreExtraConfig.h -// AnyThinkMobrainAdapter -// -// Created by GUO PENG on 2022/8/26. -// Copyright © 2022 AnyThink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class ABUAdSDKManager; - -@interface ATGromoreExtraConfig : NSObject - - -+ (void)setExtraConfig:(void(^_Nullable)(ABUAdSDKManager * _Nullable configuration))extraConfigBlock; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h.meta deleted file mode 100644 index 62969d1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATGromoreExtraConfig.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: de3f4d2f9a4d19e488d06d65d628dbd2 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h deleted file mode 100644 index de12839..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// ATMobrainBaseManager.h -// AnyThinkMobrainAdapter -// -// Created by Topon on 2/1/21. -// Copyright © 2021 AnyThink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark - Mobrain -// kATSplashExtraMobrainAdnTypeKey Obsolete, please use kATSplashExtraMobrainAdnNameKey to pass in, the name of adn, please use the following values'pangle','baidu','gdt','ks', other values may cause the advertisement to fail to load -extern NSString *const kATSplashExtraMobrainAdnNameKey; -extern NSString *const kATSplashExtraMobrainAppKeyKey; -extern NSString *const kATSplashExtraMobrainAppIDKey; -extern NSString *const kATSplashExtraMobrainRIDKey; - -/** - optional - Set whether to mute the video,YES = mute,NO = unMute - PS: - 1、RV:only GDT,Klevin,MTG support setting mute - 2、IV:only GDT support setting mute - 3、Native video:only GDT,Admob,Baidu,MTG support setting mute - */ -extern NSString *const kATExtraMobrainMutedKey; - -typedef NS_ENUM(NSUInteger, ATBUAdSDKTerritory) { - BUAdSDKTerritory_CN = 1, - BUAdSDKTerritory_NO_CN, -}; - -static NSString * kAdGromoreInitiatedKey = @"kAdGromoreInitiatedKey"; - -@interface ATMobrainBaseManager : ATNetworkBaseManager - -@end - -@protocol ATABUPanglePersonaliseConfigAdapter -+ (void)configAdapterWithBlock:(void(^)(void))block; -@end - -@protocol ATBUAdSDKConfiguration -+ (instancetype)configuration; -@property (nonatomic, assign) ATBUAdSDKTerritory territory; -@property (nonatomic, strong) NSNumber *debugLog; - -@end - -@protocol ATGromoreBiddingRequest_plus -@property(nonatomic, strong) id customObject; - -@property(nonatomic, strong) ATUnitGroupModel *unitGroup; - -@property(nonatomic, strong) ATAdCustomEvent *customEvent; - -@property(nonatomic, copy) NSString *unitID; -@property(nonatomic, copy) NSString *placementID; - -@property(nonatomic, copy) NSDictionary *extraInfo; - -@property(nonatomic, copy) NSArray *nativeAds; -@property(nonatomic, copy) UIView *bannerView; - -@property(nonatomic, copy) void(^bidCompletion)(ATBidInfo * _Nullable bidInfo, NSError * _Nullable error); -@property(nonatomic, assign) ATAdFormat adType; - -@end - -@protocol ATGromoreC2SBiddingRequestManager_plus - -+ (instancetype)sharedInstance; - -- (void)startWithRequestItem:(id)request; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h.meta deleted file mode 100644 index 2971ffc..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/ATMobrainBaseManager.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c6f9532db5b8fb54c9c5b3da132a0ccd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h deleted file mode 100644 index 6b2dffe..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// AnyThinkMobrainAdapter_Plus.h -// AnyThinkMobrainAdapter_Plus -// -// Created by Topon on 5/18/22. -// Copyright © 2022 AnyThink. All rights reserved. -// - -#import - -#import -#import - -//! Project version number for AnyThinkMobrainAdapter_Plus. -FOUNDATION_EXPORT double AnyThinkMobrainAdapter_PlusVersionNumber; - -//! Project version string for AnyThinkMobrainAdapter_Plus. -FOUNDATION_EXPORT const unsigned char AnyThinkMobrainAdapter_PlusVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h.meta deleted file mode 100644 index 4f11b43..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Headers/AnyThinkMobrainAdapter_Plus.h.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: df1528928e3f2d34aad11b1805196754 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist deleted file mode 100644 index a919f2a..0000000 Binary files a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist and /dev/null differ diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist.meta deleted file mode 100644 index 7b6b3b1..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Info.plist.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d9a2b4612ee105f4d8fb48ccc2589363 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules.meta deleted file mode 100644 index 58e00b0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 18aa7139e947ed2409d7bb10f8830ce1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap deleted file mode 100644 index 8100fa4..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module AnyThinkMobrainAdapter_Plus { - umbrella header "AnyThinkMobrainAdapter_Plus.h" - - export * - module * { export * } -} diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap.meta b/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap.meta deleted file mode 100644 index db80ef0..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/AnyThinkMobrainAdapter_Plus.framework/Modules/module.modulemap.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: af49ac76e726ae6499bfb430fb9bb2f4 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/kuaishou/Editor/Dependencies.xml b/Assets/AnyThinkAds/Plugins/iOS/kuaishou/Editor/Dependencies.xml index ed3dca5..c9b804c 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/kuaishou/Editor/Dependencies.xml +++ b/Assets/AnyThinkAds/Plugins/iOS/kuaishou/Editor/Dependencies.xml @@ -1,6 +1,6 @@ - + diff --git a/Assets/AnyThinkAds/Plugins/iOS/pangle_China.meta b/Assets/AnyThinkAds/Plugins/iOS/pangle_China.meta deleted file mode 100644 index 39849bf..0000000 --- a/Assets/AnyThinkAds/Plugins/iOS/pangle_China.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5b44b6b990df948d39ae46aa7669b95b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Thrid.meta b/Assets/AnyThinkAds/Thrid.meta index 6c5ee8d..85238be 100644 --- a/Assets/AnyThinkAds/Thrid.meta +++ b/Assets/AnyThinkAds/Thrid.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9a9b1732f138c4ea08e42f658dff47e4 +guid: 3523abbcd4cf24058b0b6404ee928407 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkPlugin/Editor/localConfig.json b/Assets/AnyThinkPlugin/Editor/localConfig.json deleted file mode 100644 index 0037cdb..0000000 --- a/Assets/AnyThinkPlugin/Editor/localConfig.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"","sDKInfo":[{"network":"Core","version":"6.1.71","displayVersion":"iOS : 6.1.71 Android : 6.1.68"},{"network":"GDT","version":"6.1.71","displayVersion":"iOS : 4.14.12 Android : 4.511.1381"},{"network":"KuaiShou","version":"6.1.71","displayVersion":"iOS : 3.3.40 Android : 3.3.40"},{"network":"Pangle","version":"6.1.71","displayVersion":"iOS : 5.1.0.1 Android : 5.1.0.2"}],"versionList":[]} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Editor/localConfig.json.meta b/Assets/AnyThinkPlugin/Editor/localConfig.json.meta deleted file mode 100644 index 214855b..0000000 --- a/Assets/AnyThinkPlugin/Editor/localConfig.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 56e64f2bc9e07400cabd79e3b2c503c4 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus.meta b/Assets/AnyThinkPlugin/Resources.meta similarity index 77% rename from Assets/AnyThinkAds/Plugins/iOS/gromore_plus.meta rename to Assets/AnyThinkPlugin/Resources.meta index b231c6c..1dbc62d 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus.meta +++ b/Assets/AnyThinkPlugin/Resources.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0cb42c988c5f1284082deff139aaa564 +guid: 58cb91947dc7b4472874a8bc04884701 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkPlugin/Resources/Assets.meta b/Assets/AnyThinkPlugin/Resources/Assets.meta new file mode 100644 index 0000000..dc70cc8 --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cef0820530e9ecb498292b4cd3a3c8e4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset b/Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset new file mode 100644 index 0000000..bb02d32 --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ecbff3e4ceb2645ec8bb940d0dde7174, type: 3} + m_Name: ATAssetDatabaseManager + m_EditorClassIdentifier: + importingNetwork: + Name: + DisplayName: + DownloadUrl: + DependenciesFilePath: + PluginFileName: + PluginFilePaths: [] + LatestVersions: + Unity: + Android: + Ios: + CurrentVersions: + Unity: + Android: + Ios: diff --git a/Assets/AnyThinkAds/Dependencies/AnyThinkCore.unitypackage.meta b/Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset.meta similarity index 52% rename from Assets/AnyThinkAds/Dependencies/AnyThinkCore.unitypackage.meta rename to Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset.meta index 27fdbb4..ae0ce31 100644 --- a/Assets/AnyThinkAds/Dependencies/AnyThinkCore.unitypackage.meta +++ b/Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset.meta @@ -1,7 +1,8 @@ fileFormatVersion: 2 -guid: 204b06fd9e3f8604f8bc52ca1580d565 -DefaultImporter: +guid: 63e477abad871dd428293d86073af5f7 +NativeFormatImporter: externalObjects: {} + mainObjectFileID: 11400000 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset b/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset new file mode 100644 index 0000000..def38d9 --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b84d4dee1dff41c89fcad01c952ca4c, type: 3} + m_Name: ATPluginSetting + m_EditorClassIdentifier: + adMobAndroidAppId: + adMobIosAppId: + coreNetwork: + Name: Core + DisplayName: Core + DownloadUrl: https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/6.2.51-plugin/China/AnyThinkCore.unitypackage + DependenciesFilePath: + PluginFileName: AnyThinkCore.unitypackage + PluginFilePaths: [] + LatestVersions: + Unity: 2.0.1 + Android: 6.2.51 + Ios: 6.2.51 + CurrentVersions: + Unity: 2.0.1 + Android: 6.2.51 + Ios: 6.2.51 + enableAndroidX: 0 diff --git a/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset.meta b/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset.meta new file mode 100644 index 0000000..d25a408 --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 22ffb3543b46f34479c1f61cf6959a5a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Images.meta b/Assets/AnyThinkPlugin/Resources/Images.meta new file mode 100644 index 0000000..64a991b --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efeb43f1583cc4e0fa42aaaaa9a96367 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png b/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png new file mode 100644 index 0000000..1651950 Binary files /dev/null and b/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png differ diff --git a/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png.meta b/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png.meta new file mode 100644 index 0000000..2195883 --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Images/alert_icon.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 84ee1925ebaa4430587b1697a0cc378a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png b/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png new file mode 100644 index 0000000..3b55354 Binary files /dev/null and b/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png differ diff --git a/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png.meta b/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png.meta new file mode 100644 index 0000000..deea63e --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Images/uninstall_icon.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 1ed8e1d1763ee441caf722be644994ba +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png b/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png new file mode 100644 index 0000000..cc9660e Binary files /dev/null and b/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png differ diff --git a/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png.meta b/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png.meta new file mode 100644 index 0000000..f261cce --- /dev/null +++ b/Assets/AnyThinkPlugin/Resources/Images/warning_icon.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: a64dc878e75e44d2e9ed923628832495 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script.meta b/Assets/AnyThinkPlugin/Script.meta index a2192c6..71a7c8b 100644 --- a/Assets/AnyThinkPlugin/Script.meta +++ b/Assets/AnyThinkPlugin/Script.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 85f9836b0a7f4467c872a6d93df025b6 +guid: 58d0c20f6770d4a1cbc22b191ffea767 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkPlugin/Script/ATConfig.cs b/Assets/AnyThinkPlugin/Script/ATConfig.cs deleted file mode 100644 index 4cb5439..0000000 --- a/Assets/AnyThinkPlugin/Script/ATConfig.cs +++ /dev/null @@ -1,85 +0,0 @@ - -using System; -using ATNet; -using ATJson; - -using UnityEditor; -using UnityEngine; -using UnityEngine.Networking; -using System.Collections.Generic; -using ATProviderInfo; -using System.IO; - namespace ATConf -{ - - [Serializable] - public class ATconfig - { - - public string version; - public List sDKInfo; - public String[] versionList; - - public void saveToLocal(){ - string potion = JsonUtility.ToJson(this); - System.IO.File.WriteAllText(ATNetInfo.localConfig,potion); - - } - - public void updateNetwork(ATInfo aTInfo){ - SDKInfo curInfo = null; - - Debug.Log("ver:"+aTInfo.latestUnityVersion); - - - foreach (SDKInfo info in this.sDKInfo){ - if(info.network == aTInfo.displayProviderName){ - curInfo = info; - } - } - if(curInfo == null){ - curInfo = new SDKInfo(); - curInfo.network = aTInfo.displayProviderName; - curInfo.version = aTInfo.latestUnityVersion; - curInfo.displayVersion = aTInfo.displayVersion; - - this.sDKInfo.Add(curInfo); - }else{ - curInfo.version = aTInfo.latestUnityVersion; - } - - - saveToLocal(); - } - - public void resetNetwork(){ - - this.sDKInfo = new List(); - saveToLocal(); - } - - public static ATconfig getLocalConfig(){ - String file = File.ReadAllText(ATNetInfo.localConfig); - ATconfig localConfig = JsonUtility.FromJson(file); - - if(localConfig == null){ - localConfig = new ATconfig(); - } - return localConfig; - - } - -} - - [Serializable] - public class SDKInfo { - public string network; - public string version; - - public string displayVersion; - - - } - - -} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/ATJson.cs b/Assets/AnyThinkPlugin/Script/ATJson.cs deleted file mode 100644 index def52ac..0000000 --- a/Assets/AnyThinkPlugin/Script/ATJson.cs +++ /dev/null @@ -1,495 +0,0 @@ -/* - * Based on the miniJSON by Calvin Rien - */ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Text; - -namespace ATJson -{ - public static class Json - { - public static object Deserialize (string json) - { - if (json == null) { - return null; - } - return Parser.Parse (json); - } - - sealed class Parser : IDisposable - { - const string WHITE_SPACE = " \t\n\r"; - const string WORD_BREAK = " \t\n\r{}[],:\""; - - enum TOKEN - { - NONE, - CURLY_OPEN, - CURLY_CLOSE, - SQUARED_OPEN, - SQUARED_CLOSE, - COLON, - COMMA, - STRING, - NUMBER, - TRUE, - FALSE, - NULL - } - ; - - StringReader json; - - Parser (string jsonString) - { - json = new StringReader (jsonString); - } - - public static object Parse (string jsonString) - { - using (var instance = new Parser(jsonString)) { - return instance.ParseValue (); - } - } - - public void Dispose () - { - json.Dispose (); - json = null; - } - - Dictionary ParseObject () - { - Dictionary table = new Dictionary (); - - // ditch opening brace - json.Read (); - - // { - while (true) { - switch (NextToken) { - case TOKEN.NONE: - return null; - case TOKEN.COMMA: - continue; - case TOKEN.CURLY_CLOSE: - return table; - default: - // name - string name = ParseString (); - if (name == null) { - return null; - } - - // : - if (NextToken != TOKEN.COLON) { - return null; - } - // ditch the colon - json.Read (); - - // value - table [name] = ParseValue (); - break; - } - } - } - - List ParseArray () - { - List array = new List (); - - // ditch opening bracket - json.Read (); - - // [ - var parsing = true; - while (parsing) { - TOKEN nextToken = NextToken; - - switch (nextToken) { - case TOKEN.NONE: - return null; - case TOKEN.COMMA: - continue; - case TOKEN.SQUARED_CLOSE: - parsing = false; - break; - default: - object value = ParseByToken (nextToken); - - array.Add (value); - break; - } - } - - return array; - } - - object ParseValue () - { - TOKEN nextToken = NextToken; - return ParseByToken (nextToken); - } - - object ParseByToken (TOKEN token) - { - switch (token) { - case TOKEN.STRING: - return ParseString (); - case TOKEN.NUMBER: - return ParseNumber (); - case TOKEN.CURLY_OPEN: - return ParseObject (); - case TOKEN.SQUARED_OPEN: - return ParseArray (); - case TOKEN.TRUE: - return true; - case TOKEN.FALSE: - return false; - case TOKEN.NULL: - return null; - default: - return null; - } - } - - string ParseString () - { - StringBuilder s = new StringBuilder (); - char c; - - // ditch opening quote - json.Read (); - - bool parsing = true; - while (parsing) { - - if (json.Peek () == -1) { - parsing = false; - break; - } - - c = NextChar; - switch (c) { - case '"': - parsing = false; - break; - case '\\': - if (json.Peek () == -1) { - parsing = false; - break; - } - - c = NextChar; - switch (c) { - case '"': - case '\\': - case '/': - s.Append (c); - break; - case 'b': - s.Append ('\b'); - break; - case 'f': - s.Append ('\f'); - break; - case 'n': - s.Append ('\n'); - break; - case 'r': - s.Append ('\r'); - break; - case 't': - s.Append ('\t'); - break; - case 'u': - var hex = new StringBuilder (); - - for (int i=0; i< 4; i++) { - hex.Append (NextChar); - } - - s.Append ((char)Convert.ToInt32 (hex.ToString (), 16)); - break; - } - break; - default: - s.Append (c); - break; - } - } - - return s.ToString (); - } - - object ParseNumber () - { - string number = NextWord; - - if (number.IndexOf ('.') == -1) { - long parsedInt; - Int64.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out parsedInt); - return parsedInt; - } - - double parsedDouble; - Double.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out parsedDouble); - return parsedDouble; - } - - void EatWhitespace () - { - while (WHITE_SPACE.IndexOf(PeekChar) != -1) { - json.Read (); - - if (json.Peek () == -1) { - break; - } - } - } - - char PeekChar { - get { - return Convert.ToChar (json.Peek ()); - } - } - - char NextChar { - get { - return Convert.ToChar (json.Read ()); - } - } - - string NextWord { - get { - StringBuilder word = new StringBuilder (); - - while (WORD_BREAK.IndexOf(PeekChar) == -1) { - word.Append (NextChar); - - if (json.Peek () == -1) { - break; - } - } - - return word.ToString (); - } - } - - TOKEN NextToken { - get { - EatWhitespace (); - - if (json.Peek () == -1) { - return TOKEN.NONE; - } - - char c = PeekChar; - switch (c) { - case '{': - return TOKEN.CURLY_OPEN; - case '}': - json.Read (); - return TOKEN.CURLY_CLOSE; - case '[': - return TOKEN.SQUARED_OPEN; - case ']': - json.Read (); - return TOKEN.SQUARED_CLOSE; - case ',': - json.Read (); - return TOKEN.COMMA; - case '"': - return TOKEN.STRING; - case ':': - return TOKEN.COLON; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '-': - return TOKEN.NUMBER; - } - - string word = NextWord; - - switch (word) { - case "false": - return TOKEN.FALSE; - case "true": - return TOKEN.TRUE; - case "null": - return TOKEN.NULL; - } - - return TOKEN.NONE; - } - } - } - - /// - /// Converts a IDictionary / IList object or a simple type (string, int, etc.) into a JSON string - /// - /// A Dictionary<string, object> / List<object> - /// A JSON encoded string, or null if object 'json' is not serializable - public static string Serialize (object obj) - { - return Serializer.Serialize (obj); - } - - sealed class Serializer - { - StringBuilder builder; - - Serializer () - { - builder = new StringBuilder (); - } - - public static string Serialize (object obj) - { - var instance = new Serializer (); - - instance.SerializeValue (obj); - - return instance.builder.ToString (); - } - - void SerializeValue (object value) - { - IList asList; - IDictionary asDict; - string asStr; - - if (value == null) { - builder.Append ("null"); - } else if ((asStr = value as string) != null) { - SerializeString (asStr); - } else if (value is bool) { - builder.Append (value.ToString ().ToLower ()); - } else if ((asList = value as IList) != null) { - SerializeArray (asList); - } else if ((asDict = value as IDictionary) != null) { - SerializeObject (asDict); - } else if (value is char) { - SerializeString (value.ToString ()); - } else { - SerializeOther (value); - } - } - - void SerializeObject (IDictionary obj) - { - bool first = true; - - builder.Append ('{'); - - foreach (object e in obj.Keys) { - if (!first) { - builder.Append (','); - } - - SerializeString (e.ToString ()); - builder.Append (':'); - - SerializeValue (obj [e]); - - first = false; - } - - builder.Append ('}'); - } - - void SerializeArray (IList anArray) - { - builder.Append ('['); - - bool first = true; - - foreach (object obj in anArray) { - if (!first) { - builder.Append (','); - } - - SerializeValue (obj); - - first = false; - } - - builder.Append (']'); - } - - void SerializeString (string str) - { - builder.Append ('\"'); - - char[] charArray = str.ToCharArray (); - foreach (var c in charArray) { - switch (c) { - case '"': - builder.Append ("\\\""); - break; - case '\\': - builder.Append ("\\\\"); - break; - case '\b': - builder.Append ("\\b"); - break; - case '\f': - builder.Append ("\\f"); - break; - case '\n': - builder.Append ("\\n"); - break; - case '\r': - builder.Append ("\\r"); - break; - case '\t': - builder.Append ("\\t"); - break; - default: - int codepoint = Convert.ToInt32 (c); - if ((codepoint >= 32) && (codepoint <= 126)) { - builder.Append (c); - } else { - builder.Append ("\\u" + Convert.ToString (codepoint, 16).PadLeft (4, '0')); - } - break; - } - } - - builder.Append ('\"'); - } - - void SerializeOther (object value) - { - if (value is float - || value is int - || value is uint - || value is long - || value is double - || value is sbyte - || value is byte - || value is short - || value is ushort - || value is ulong - || value is decimal) { - builder.Append (value.ToString ()); - } else { - SerializeString (value.ToString ()); - } - } - } - } -} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/ATNetInfo.cs b/Assets/AnyThinkPlugin/Script/ATNetInfo.cs deleted file mode 100644 index 63ce43c..0000000 --- a/Assets/AnyThinkPlugin/Script/ATNetInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; - - -using UnityEngine; - -namespace ATNet { - - public static class ATNetInfo { - public static string platformName = "AnyThink"; - public static string ATDownloadDir = "Assets/AnyThinkAds/Dependencies/"; - public static string ATDependencyDir = "Assets/AnyThinkAds/Plugins/"; - public static string sdk = "sdk"; - public static string Android = "Android"; - public static string iOS = "iOS"; - public static string localConfig = "Assets/AnyThinkPlugin/Editor/localConfig.json"; - public static string networkPath = "http://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/network_config.json"; - public static string packagePath = "http://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/"; - public static int isGlobal=1; //0:国外 //1:国内 - - public static string getNetworkJson(String ver){ - return "http://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/"+ver+"/network.json"; - } - } - -} diff --git a/Assets/AnyThinkPlugin/Script/ATProviderInfo.cs b/Assets/AnyThinkPlugin/Script/ATProviderInfo.cs deleted file mode 100644 index 0a25765..0000000 --- a/Assets/AnyThinkPlugin/Script/ATProviderInfo.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Text.RegularExpressions; -using System.Xml; -using UnityEditor; -using UnityEngine; -using UnityEngine.Networking; -using ATNet; -using ATConf; -namespace ATProviderInfo { - - public class ATInfo - { - - - - public Status currentStatues; - public string providerName; - public string currentUnityVersion; - public string latestUnityVersion; - public string downloadURL; - public string displayProviderName; - - public string currentDisplayVersion="-"; - public string displayVersion; - - public bool isNewProvider; - public string fileName; - - public string packageName; - - - - public Dictionary sdkVersionDic; - - public ATconfig localConfig; - - - public ATInfo() - { - isNewProvider = false; - fileName = string.Empty; - downloadURL = string.Empty; - currentUnityVersion = "none"; - sdkVersionDic = new Dictionary(); - localConfig = ATconfig.getLocalConfig(); - - } - - public enum Status - { - installed = 1, - none = 2, - updated = 3 - } - - public bool GetFromJson(string name, Dictionary dic) - { - providerName = name; - object obj; - - dic.TryGetValue("keyname", out obj); - if (obj != null) - { - this.displayProviderName = obj as string; - } - else this.displayProviderName = providerName; - - dic.TryGetValue("version", out obj); - - if (obj != null) - { - this.latestUnityVersion = obj as string; - } - - dic.TryGetValue("displayVersion", out obj); - - if (obj != null) - { - this.displayVersion = obj as string; - } - - - SDKInfo curInfo = null; - foreach (SDKInfo info in localConfig.sDKInfo){ - if(info.network == this.displayProviderName) - { - curInfo = info; - currentUnityVersion = info.version; - currentDisplayVersion = info.displayVersion; - } - } - if(curInfo == null){ // no saved in local - currentUnityVersion = "-"; - } - - if (currentUnityVersion.Equals("-")) - { - currentStatues = Status.none; - } - - else - { - if (isNewerVersion(currentUnityVersion, latestUnityVersion)) - { - currentStatues = Status.installed; - } - else - { - currentStatues = Status.updated; - } - } - - return true; - } - - private static string GetVersionFromXML(string fileName) - { - XmlDocument xmlDoc = new XmlDocument(); - string version = "none"; - try - { - xmlDoc.LoadXml(File.ReadAllText(ATNetInfo.ATDownloadDir + fileName)); - } - catch (Exception e) - { - Debug.Log("error--"+fileName+"--"+ e.Message); - return version; - } - var unityVersion = xmlDoc.SelectSingleNode("dependencies/unityversion"); - - - if (unityVersion != null) - { - return (unityVersion.InnerText); - } - File.Delete(ATNetInfo.ATDownloadDir + fileName); - return version; - } - - private static bool isNewerVersion(string current, string latest) - { - bool isNewer = false; - try - { - int[] currentVersion = Array.ConvertAll(current.Split('.'), int.Parse); - int[] remoteVersion = Array.ConvertAll(latest.Split('.'), int.Parse); - int remoteBuild = 0; - int curBuild = 0; - if (currentVersion.Length > 3) - { - curBuild = currentVersion[3]; - } - if (remoteVersion.Length > 3) - { - remoteBuild = remoteVersion[3]; - - } - System.Version cur = new System.Version(currentVersion[0], currentVersion[1], currentVersion[2], curBuild); - System.Version remote = new System.Version(remoteVersion[0], remoteVersion[1], remoteVersion[2], remoteBuild); - isNewer = cur < remote; - } - catch (Exception) - { - - } - return isNewer; - - } - } -} diff --git a/Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef b/Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef deleted file mode 100644 index 81aac17..0000000 --- a/Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "AnyThinkPlugin", - "rootNamespace": "", - "references": [ - "GUID:c248eb35f205f4a4ca30558ca783f464" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Editor.meta b/Assets/AnyThinkPlugin/Script/Editor.meta similarity index 77% rename from Assets/Editor.meta rename to Assets/AnyThinkPlugin/Script/Editor.meta index a132777..924fe07 100644 --- a/Assets/Editor.meta +++ b/Assets/AnyThinkPlugin/Script/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 56682603f4c2844ed9707674254d306a +guid: 86dba432439c547b3aae22c2c43ed14a folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs new file mode 100644 index 0000000..db8e668 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs @@ -0,0 +1,329 @@ +#if UNITY_ANDROID && UNITY_2018_2_OR_NEWER +using AnyThink.Scripts.IntegrationManager.Editor; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using UnityEditor; +using UnityEditor.Android; + +namespace AnyThink.Scripts.Editor +{ + public class ATPostProcessBuildAndroid: IPostGenerateGradleAndroidProject + { +#if UNITY_2019_3_OR_NEWER + private static string PropertyAndroidX = "android.useAndroidX"; + private static string PropertyJetifier = "android.enableJetifier"; + private static string EnableProperty = "=true"; +#endif + private static string PropertyDexingArtifactTransform = "android.enableDexingArtifactTransform"; + private static string DisableProperty = "=false"; + + private static string KeyMetaDataAppLovinVerboseLoggingOn = "applovin.sdk.verbose_logging"; + private static string KeyMetaDataGoogleApplicationId = "com.google.android.gms.ads.APPLICATION_ID"; + private static string KeyMetaDataGoogleAdManagerApp = "com.google.android.gms.ads.AD_MANAGER_APP"; + + 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) + { + ATLog.log("OnPostGenerateGradleAndroidProject() >>> path: " + path); + +#if UNITY_2019_3_OR_NEWER + var gradlePropertiesPath = Path.Combine(path, "../gradle.properties"); +#else + var gradlePropertiesPath = Path.Combine(path, "gradle.properties"); +#endif + + processGradleProperties(gradlePropertiesPath); + processAndroidManifest(path); + processNetworkConfigXml(path); + ATProcessBuildGradleAndroid.processBuildGradle(path); + } + + public int callbackOrder + { + get { return int.MaxValue; } + } + + private static void processGradleProperties(string gradlePropertiesPath) + { + ATLog.log("OnPostGenerateGradleAndroidProject() >>> gradlePropertiesPath: " + gradlePropertiesPath + " File.Exists(gradlePropertiesPath): " + File.Exists(gradlePropertiesPath)); + bool isChina = ATConfig.isSelectedChina(); + + var gradlePropertiesUpdated = new List(); + + // If the gradle properties file already exists, make sure to add any previous properties. + if (File.Exists(gradlePropertiesPath)) + { + var lines = File.ReadAllLines(gradlePropertiesPath); + +#if UNITY_2019_3_OR_NEWER + // Add all properties except AndroidX, Jetifier, and DexingArtifactTransform since they may already exist. We will re-add them below. + gradlePropertiesUpdated.AddRange(lines.Where(line => !line.Contains(PropertyAndroidX) && !line.Contains(PropertyJetifier) && !line.Contains(PropertyDexingArtifactTransform))); +#else + // Add all properties except DexingArtifactTransform since it may already exist. We will re-add it below. + gradlePropertiesUpdated.AddRange(lines.Where(line => !line.Contains(PropertyDexingArtifactTransform))); +#endif + } + +#if UNITY_2019_3_OR_NEWER + //如果是国内,则根据选择来决定是否用AndroidX + if (isChina) + { + if (!ATPluginSetting.Instance.EnableAndroidX) { + EnableProperty = "=false"; + } else { + EnableProperty = "=true"; + } + } else { + EnableProperty = "=true"; + } + ATLog.log("[AnyThink] AndroidX EnableProperty" + EnableProperty); + // Enable AndroidX and Jetifier properties + gradlePropertiesUpdated.Add(PropertyAndroidX + EnableProperty); + gradlePropertiesUpdated.Add(PropertyJetifier + EnableProperty); +#endif + // Disable dexing using artifact transform (it causes issues for ExoPlayer with Gradle plugin 3.5.0+) + gradlePropertiesUpdated.Add(PropertyDexingArtifactTransform + DisableProperty); + + try + { + File.WriteAllText(gradlePropertiesPath, string.Join("\n", gradlePropertiesUpdated.ToArray()) + "\n"); + } + catch (Exception exception) + { + ATLog.logError("Failed to enable AndroidX and Jetifier. gradle.properties file write failed."); + Console.WriteLine(exception); + } + } + + private 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("[AnyThink] AndroidManifest.xml is missing."); + return; + } + + // Get the `manifest` element. + var elementManifest = manifest.Element("manifest"); + if (elementManifest == null) + { + ATLog.log("[AnyThink] AndroidManifest.xml is invalid."); + return; + } + + var elementApplication = elementManifest.Element("application"); + if (elementApplication == null) + { + ATLog.log("[AnyThink] AndroidManifest.xml is invalid."); + return; + } + + var metaDataElements = elementApplication.Descendants().Where(element => element.Name.LocalName.Equals("meta-data")); + addGoogleApplicationIdIfNeeded(elementApplication, metaDataElements); + // Save the updated manifest file. + manifest.Save(manifestPath); + } + + private static void addGoogleApplicationIdIfNeeded(XElement elementApplication, IEnumerable metaDataElements) + { + var googleApplicationIdMetaData = GetElementByName(metaDataElements, KeyMetaDataGoogleApplicationId); + if (!ATConfig.isAndroidNetworkInstalled("Admob", ATConfig.NONCHINA_COUNTRY)) + { + ATLog.log("addGoogleApplicationIdIfNeeded() >>> Admob not install."); + if (googleApplicationIdMetaData != null) googleApplicationIdMetaData.Remove(); + return; + } + + var appId = ATPluginSetting.Instance.AdMobAndroidAppId; + // Log error if the App ID is not set. + if (string.IsNullOrEmpty(appId) || !appId.StartsWith("ca-app-pub-")) + { + ATLog.logError("AdMob App ID is not set. Please enter a valid app ID within the AnyThink Integration Manager window."); + return; + } + + // Check if the Google App ID meta data already exists. Update if it already exists. + if (googleApplicationIdMetaData != null) + { + googleApplicationIdMetaData.SetAttributeValue(AndroidNamespace + "value", appId); + } + // Meta data doesn't exist, add it. + else + { + elementApplication.Add(CreateMetaDataElement(KeyMetaDataGoogleApplicationId, appId)); + } + } + + /// + /// Looks through all the given meta-data elements to check if the required one exists. Returns null if it doesn't exist. + /// + private static XElement GetElementByName(IEnumerable 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; + } + + /// + /// Creates and returns a meta-data element with the given name and value. + /// + private static XElement CreateMetaDataElement(string name, object value) + { + var metaData = new XElement("meta-data"); + metaData.Add(new XAttribute(AndroidNamespace + "name", name)); + metaData.Add(new XAttribute(AndroidNamespace + "value", value)); + + return metaData; + } + + private static void processNetworkConfigXml(string path) + { + bool isChina = ATConfig.isSelectedChina(); + // bool isChina = true; + + //在application标签加上:android:networkSecurityConfig="@xml/anythink_network_security_config" + addNetworkSecurityConfigInApplication(path, isChina); + +#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 + + var rexXmlDir = Path.Combine(resXmlPath, "anythink_network_security_config.xml"); + if (File.Exists(rexXmlDir)) + { + if (!isChina) //海外不用配置这个xml + { + FileUtil.DeleteFileOrDirectory(rexXmlDir); + } + return; + } + if (!Directory.Exists(resXmlPath)) + { + Directory.CreateDirectory(resXmlPath); + } + + saveFile("Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml", resXmlPath); + } + + public static void saveFile(string filePathName , string toFilesPath) + { + FileInfo file = new FileInfo(filePathName); + string newFileName= file.Name; + file.CopyTo(toFilesPath + "/" + newFileName, true); + } + + private static void addNetworkSecurityConfigInApplication(string path, bool isChina) + { +#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("[AnyThink] AndroidManifest.xml is missing."); + return; + } + + // Get the `manifest` element. + var elementManifest = manifest.Element("manifest"); + if (elementManifest == null) + { + ATLog.log("[AnyThink] AndroidManifest.xml is invalid."); + return; + } + + var elementApplication = elementManifest.Element("application"); + if (elementApplication == null) + { + ATLog.log("[AnyThink] AndroidManifest.xml is invalid."); + return; + } + //handle anythink_network_security_config.xml + XAttribute networkConfigAttribute = elementApplication.Attribute(AndroidNamespace + "networkSecurityConfig"); + if (networkConfigAttribute != null) { + networkConfigAttribute.Remove(); + } + if (isChina) + { + elementApplication.Add(new XAttribute(AndroidNamespace + "networkSecurityConfig", "@xml/anythink_network_security_config")); + } + + //这个设置主要是为了适配9.0以上的机器 + // + var usesLibraryElements = elementApplication.Descendants().Where(element => element.Name.LocalName.Equals("uses-library")); + if (usesLibraryElements == null) + { + elementApplication.Add(createHttpLegacyElement()); + } + else + { + XElement httpLegacyElement = GetElementByName(usesLibraryElements, "org.apache.http.legacy"); + if (httpLegacyElement == null) + { + elementApplication.Add(createHttpLegacyElement()); + } + } + manifest.Save(manifestPath); + } + + public static XElement createHttpLegacyElement() + { + var httpFeautre = new XElement("uses-library"); + httpFeautre.Add(new XAttribute(AndroidNamespace + "name", "org.apache.http.legacy")); + httpFeautre.Add(new XAttribute(AndroidNamespace + "required", "false")); + + return httpFeautre; + } + + private static XElement CreateMetaDataElement(string name, object value, object toolsNode) + { + var metaData = new XElement("meta-data"); + metaData.Add(new XAttribute(AndroidNamespace + "name", name)); + metaData.Add(new XAttribute(AndroidNamespace + "value", value)); + metaData.Add(new XAttribute(ToolsNamespace + "node", toolsNode)); + + return metaData; + } + } + +} + +#endif \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs.meta b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs.meta new file mode 100644 index 0000000..4bab9b8 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildAndroid.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be367c330856340a4a9626db43b8917b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs new file mode 100644 index 0000000..8025408 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs @@ -0,0 +1,187 @@ +#if UNITY_IOS || UNITY_IPHONE + +using AnyThink.Scripts.IntegrationManager.Editor; +#if UNITY_2019_3_OR_NEWER +using UnityEditor.iOS.Xcode.Extensions; +#endif +using UnityEngine.Networking; +using System; +using System.Linq; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEditor.Callbacks; +using UnityEditor.iOS.Xcode; +using UnityEngine; + +namespace AnyThink.Scripts.Editor +{ + [Serializable] + public class SkAdNetworkData + { + [SerializeField] public string[] SkAdNetworkIds; + } + + public class TopOnPostProcessBuildiOS + { + + private static readonly List AtsRequiringNetworks = new List + { + "AdColony", + "ByteDance", + "Fyber", + "Google", + "GoogleAdManager", + "HyprMX", + "InMobi", + "IronSource", + "Smaato" + }; + + private static List DynamicLibraryPathsToEmbed + { + get + { + var dynamicLibraryPathsToEmbed = new List(); + dynamicLibraryPathsToEmbed.Add(Path.Combine("Pods/", "KSAdSDK/KSAdSDK.xcframework")); + dynamicLibraryPathsToEmbed.Add(Path.Combine("Pods/", "StartAppSDK/StartApp.xcframework")); + dynamicLibraryPathsToEmbed.Add(Path.Combine("Pods/", "BigoADS/BigoADS/BigoADS.xcframework")); + dynamicLibraryPathsToEmbed.Add(Path.Combine("Pods/", "BigoADS/BigoADS/OMSDK_Bigosg.xcframework")); + dynamicLibraryPathsToEmbed.Add(Path.Combine("Pods/", "HyBid/PubnativeLite/PubnativeLite/OMSDK-1.3.29/OMSDK_Pubnativenet.xcframework")); + + + + return dynamicLibraryPathsToEmbed; + } + } + + private static List BunldePathsToAdd { + get { + + var bunldePathsToAdd = new List(); + bunldePathsToAdd.Add(Path.Combine("Pods/", "BigoADS/BigoADS/BigoADSRes.bundle")); + + return bunldePathsToAdd; + } + } + + private static readonly List SwiftLanguageNetworks = new List + { + "MoPub" + }; + + private static readonly List EmbedSwiftStandardLibrariesNetworks = new List + { + "Facebook", + "MoPub" + }; + + [PostProcessBuildAttribute(int.MaxValue)] + public static void TopOnPostProcessPbxProject(BuildTarget buildTarget, string buildPath) + { + var projectPath = PBXProject.GetPBXProjectPath(buildPath); + var project = new PBXProject(); + project.ReadFromFile(projectPath); + +#if UNITY_2019_3_OR_NEWER + var unityMainTargetGuid = project.GetUnityMainTargetGuid(); + var unityFrameworkTargetGuid = project.GetUnityFrameworkTargetGuid(); +#else + var unityMainTargetGuid = project.TargetGuidByName(UnityMainTargetName); + var unityFrameworkTargetGuid = project.TargetGuidByName(UnityMainTargetName); +#endif + + project.SetBuildProperty(unityMainTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES"); + project.SetBuildProperty(unityMainTargetGuid, "ENABLE_BITCODE", "NO"); + + project.SetBuildProperty(unityFrameworkTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES"); + project.SetBuildProperty(unityFrameworkTargetGuid, "ENABLE_BITCODE", "NO"); + + EmbedDynamicLibrariesIfNeeded(buildPath, project, unityMainTargetGuid); + AddBunleIfNeeded(buildPath, project, unityMainTargetGuid); + + project.WriteToFile(projectPath); + } + + [PostProcessBuildAttribute(int.MaxValue)] + public static void TopOnPostProcessPlist(BuildTarget buildTarget, string path) + { + var plistPath = Path.Combine(path, "Info.plist"); + var plist = new PlistDocument(); + plist.ReadFromFile(plistPath); + +#if UNITY_2018_2_OR_NEWER + AddGoogleApplicationIdIfNeeded(plist); +#endif + + plist.WriteToFile(plistPath); + } + + private static void AddBunleIfNeeded(string buildPath, PBXProject project, string targetGuid) + { + var bunldePathsPresentInProject = BunldePathsToAdd.Where(bunldePath => Directory.Exists(Path.Combine(buildPath, bunldePath))).ToList(); + if (bunldePathsPresentInProject.Count <= 0) return; + ATLog.log("AddBunleIfNeeded"); + +#if UNITY_2019_3_OR_NEWER + foreach (var bunldePath in bunldePathsPresentInProject) + { + var fileGuid = project.AddFile(bunldePath, bunldePath, PBXSourceTree.Source); + project.AddFileToBuild(targetGuid, fileGuid); + } +#endif + } + + private static void EmbedDynamicLibrariesIfNeeded(string buildPath, PBXProject project, string targetGuid) + { + var dynamicLibraryPathsPresentInProject = DynamicLibraryPathsToEmbed.Where(dynamicLibraryPath => Directory.Exists(Path.Combine(buildPath, dynamicLibraryPath))).ToList(); + if (dynamicLibraryPathsPresentInProject.Count <= 0) return; + +#if UNITY_2019_3_OR_NEWER + foreach (var dynamicLibraryPath in dynamicLibraryPathsPresentInProject) + { + var fileGuid = project.AddFile(dynamicLibraryPath, dynamicLibraryPath); + project.AddFileToEmbedFrameworks(targetGuid, fileGuid); + } +#else + string runpathSearchPaths; +#if UNITY_2018_2_OR_NEWER + runpathSearchPaths = project.GetBuildPropertyForAnyConfig(targetGuid, "LD_RUNPATH_SEARCH_PATHS"); +#else + runpathSearchPaths = "$(inherited)"; +#endif + runpathSearchPaths += string.IsNullOrEmpty(runpathSearchPaths) ? "" : " "; + + // Check if runtime search paths already contains the required search paths for dynamic libraries. + if (runpathSearchPaths.Contains("@executable_path/Frameworks")) return; + + runpathSearchPaths += "@executable_path/Frameworks"; + project.SetBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", runpathSearchPaths); +#endif + } + +#if UNITY_2018_2_OR_NEWER + + private static void AddGoogleApplicationIdIfNeeded(PlistDocument plist) + { + if (!ATConfig.isIOSNetworkInstalled("Admob", ATConfig.NONCHINA_COUNTRY)) + { + ATLog.log("addGoogleApplicationIdIfNeeded() >>> Admob not install."); + return; + } + + var appId = ATPluginSetting.Instance.AdMobIosAppId; + + if (string.IsNullOrEmpty(appId) || !appId.StartsWith("ca-app-pub-")) + { + ATLog.logError("AdMob App ID is not set. Please enter a valid app ID within the AnyThink Integration Manager window."); + return; + } + + const string googleApplicationIdentifier = "GADApplicationIdentifier"; + plist.root.SetString(googleApplicationIdentifier, appId); + } +#endif + } +} +#endif diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs.meta b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs.meta new file mode 100644 index 0000000..048e705 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATPostProcessBuildiOS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e2b9e45df1464e4ca34d6674718bb2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs b/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs new file mode 100644 index 0000000..f091281 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs @@ -0,0 +1,270 @@ +#if UNITY_ANDROID && UNITY_2018_2_OR_NEWER +using AnyThink.Scripts.IntegrationManager.Editor; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using UnityEditor; +using UnityEditor.Android; +using System.Text.RegularExpressions; + +namespace AnyThink.Scripts.Editor +{ + + public class ATProcessBuildGradleAndroid + { + + // public void OnPostGenerateGradleAndroidProject(string path) + // { + + // } + + public static void processBuildGradle(string path) + { +#if UNITY_2019_3_OR_NEWER + var buildGradlePath = Path.Combine(path, "../build.gradle"); +#else + var buildGradlePath = Path.Combine(path, "build.gradle"); +#endif + +#if UNITY_2022_1_OR_NEWER + ATLog.log("processBuildGradle() >>> called"); +#else + replaceBuildPluginVersion(buildGradlePath); + // replaceAppBuildPluginVersion(path); +#endif + // replaceAppBuildPluginVersion(path); + handleNetworksConfit(path); + } + //修改项目的根目录下的build.gradle文件的插件版本号 + private static void replaceBuildPluginVersion(string buildGradlePath) + { + if (!File.Exists(buildGradlePath)) + { + return; + } + string gradleFileContent = ""; + using (StreamReader reader = new StreamReader(buildGradlePath)) + { + gradleFileContent = reader.ReadToEnd(); + } + if (string.IsNullOrEmpty(gradleFileContent)) + { + return; + } + + string buildGradleVersion = ""; + string buildGradlePattern = ""; + + string buildGradleVersion3 = "3.3.3"; // 新gradle插件版本号 + string buildGradlePattern3 = @"(?<=gradle:)3\.3\.\d+"; + string buildGradleVersion4 = "3.4.3"; + string buildGradlePattern4 = @"(?<=gradle:)3\.4\.\d+"; + string buildGradleVersion5 = "3.5.4"; + string buildGradlePattern5 = @"(?<=gradle:)3\.5\.\d+"; + string buildGradleVersion6 = "3.6.4"; + string buildGradlePattern6 = @"(?<=gradle:)3\.6\.\d+"; + + if (isMatchGradleVersion(gradleFileContent, buildGradleVersion3)) + { + buildGradleVersion = buildGradleVersion3; + buildGradlePattern = buildGradlePattern3; + } + else if(isMatchGradleVersion(gradleFileContent, buildGradleVersion4)) + { + buildGradleVersion = buildGradleVersion4; + buildGradlePattern = buildGradlePattern4; + } + else if(isMatchGradleVersion(gradleFileContent, buildGradleVersion5)) + { + buildGradleVersion = buildGradleVersion5; + buildGradlePattern = buildGradlePattern5; + } + else if(isMatchGradleVersion(gradleFileContent, buildGradleVersion6)) + { + buildGradleVersion = buildGradleVersion6; + buildGradlePattern = buildGradlePattern6; + } + + if (!string.IsNullOrEmpty(buildGradlePattern) && !string.IsNullOrEmpty(buildGradleVersion)) + { + replaceContent(buildGradlePath, buildGradlePattern, buildGradleVersion); + } + } + + private static void replaceContent(string filePath, string pattern, string content) + { + if (!File.Exists(filePath)) + { + return; + } + string buildGradle = ""; + using (StreamReader reader = new StreamReader(filePath)) + { + buildGradle = reader.ReadToEnd(); + } + // Regex regex = new Regex(pattern); + buildGradle = Regex.Replace(buildGradle, pattern, content); + + // 修改gradle-wrapper版本号 + // string oldWrapperVersion = "distributionUrl=https\\://services.gradle.org/d + using (StreamWriter writer = new StreamWriter(filePath)) + { + writer.Write(buildGradle); + } + } + + private static bool isMatchGradleVersion(string gradleFileContent, string version) + { + string matchStr = String.Format("gradle:{0}", version.Substring(0, 3)); + return gradleFileContent.Contains(matchStr); + } + //修改app module下的build.gradle + private static void replaceAppBuildPluginVersion(string path) + { +#if UNITY_2019_3_OR_NEWER + var buildGradlePath = Path.Combine(path, "../launcher/build.gradle"); +#else + var buildGradlePath = Path.Combine(path, "launcher/build.gradle"); +#endif + if (!File.Exists(buildGradlePath)) + { + return; + } + string buildGradleVersion = "30"; + string compileSdkVersionPattern = "compileSdkVersion"; + string targetSdkVersionPattern = "targetSdkVersion"; + + List lines = new List(); + using (StreamReader reader = new StreamReader(buildGradlePath)) + { + string line; + while ((line = reader.ReadLine()) != null) + { + lines.Add(line); + } + } + int indexToReplace = -1; + int indexToReplace1 = -1; + int removeIndex = -1; + int addIndex = -1; + for (int i = 0; i < lines.Count; i++) + { + if (lines[i].Contains(compileSdkVersionPattern)) + { + indexToReplace = i; + } + else if (lines[i].Contains(targetSdkVersionPattern)) + { + indexToReplace1 = i; + } + else if (lines[i].Contains("buildToolsVersion")) + { + removeIndex = i; + } + else if (lines[i].Contains("defaultConfig")) + { + addIndex = i; + } + } + if (indexToReplace != -1) + { + lines[indexToReplace] = " " + compileSdkVersionPattern + " " + buildGradleVersion; + } + if (indexToReplace1 != -1) + { + lines[indexToReplace1] = " " + targetSdkVersionPattern + " " + buildGradleVersion; + } + if (removeIndex != -1) + { + lines.RemoveAt(removeIndex); + } + if (addIndex != -1) + { + lines.Insert(addIndex + 1, " multiDexEnabled true"); + } + using (StreamWriter writer = new StreamWriter(buildGradlePath)) + { + foreach (string line in lines) + { + writer.WriteLine(line); + } + } + } + + private static void handleNetworksConfit(string path) + { + if (ATConfig.isSelectedChina()) + { + return; + } +#if UNITY_2019_3_OR_NEWER + var buildGradlePath = Path.Combine(path, "../launcher/build.gradle"); +#else + var buildGradlePath = Path.Combine(path, "launcher/build.gradle"); +#endif + if (!File.Exists(buildGradlePath)) + { + return; + } + List lines = new List(); + using (StreamReader reader = new StreamReader(buildGradlePath)) + { + string line; + while ((line = reader.ReadLine()) != null) + { + lines.Add(line); + } + } + var androidStartIndex = 0; + var isConfigAll = false; + var isExcludeModule = false; + + for (int i = 0; i < lines.Count; i++) + { + if (lines[i].Contains("android {")) + { + androidStartIndex = i; + } + else if (lines[i].Contains("configurations.all")) + { + isConfigAll = true; + } + else if (lines[i].Contains("META-INF/*.kotlin_module")) + { + isExcludeModule = true; + } + } + if (androidStartIndex > 0) + { + if (!isExcludeModule) + { + lines.Insert(androidStartIndex + 1, " packagingOptions {\n merge 'META-INF/com.android.tools/proguard/coroutines.pro'\n exclude 'META-INF/*.kotlin_module'\n }"); + } + if (!isConfigAll) + { + lines.Insert(androidStartIndex -1, "configurations.all {\n resolutionStrategy {\n force 'androidx.core:core:1.6.0'\n force 'androidx.recyclerview:recyclerview:1.1.0' \n }\n}"); + } + } + // configurations.all { + // resolutionStrategy { + // force 'androidx.core:core:1.6.0' + // force 'androidx.recyclerview:recyclerview:1.1.0' + // } + // } + // packagingOptions { + // merge "META-INF/com.android.tools/proguard/coroutines.pro" + // exclude "META-INF/*.kotlin_module" + // } + using (StreamWriter writer = new StreamWriter(buildGradlePath)) + { + foreach (string line in lines) + { + writer.WriteLine(line); + } + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs.meta b/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs.meta new file mode 100644 index 0000000..4e34584 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/ATProcessBuildGradleAndroid.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 311da97c47b0c4a21a96c7f310f9d8ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef b/Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef new file mode 100644 index 0000000..83ced93 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef @@ -0,0 +1,11 @@ +{ + "name": "AnyThinkPlugin.Script.Editor", + "references": [ + "AnyThinkPlugin.Script", + "AnyThinkPlugin.Script.IntegrationManager.Editor" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [] +} diff --git a/Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef.meta b/Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef.meta similarity index 76% rename from Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef.meta rename to Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef.meta index 0ee23ef..1050012 100644 --- a/Assets/AnyThinkPlugin/Script/AnyThinkPlugin.asmdef.meta +++ b/Assets/AnyThinkPlugin/Script/Editor/AnyThinkPlugin.Script.Editor.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 50611132f38c26d49a2328608a8945e1 +guid: fe7f15635ecfd4b0a9b59690ece5d0c6 AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml b/Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml new file mode 100644 index 0000000..2439f15 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml @@ -0,0 +1,4 @@ + + + + diff --git a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h.meta b/Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml.meta similarity index 87% rename from Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h.meta rename to Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml.meta index 06b8d0c..e194903 100644 --- a/Assets/AnyThinkAds/Plugins/iOS/gromore_plus/ABUAdSDK.framework/Headers/ABUVideoAdReportSupport.h.meta +++ b/Assets/AnyThinkPlugin/Script/Editor/anythink_network_security_config.xml.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 84bda4d1624626143ac40d83da20c663 -DefaultImporter: +guid: 9d4c4072cdc0f40c0b81bc2dc3d2dac2 +TextScriptImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager.meta new file mode 100644 index 0000000..7ceea9f --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8649549cff74e4d32b74b48ea17250bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor.meta new file mode 100644 index 0000000..8f42818 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffa4e194d92494cefa94fd3adb9dcb93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs new file mode 100644 index 0000000..b58cc69 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using UnityEngine.Serialization; +using AnyThink.Scripts.IntegrationManager.Editor; +using Network = AnyThink.Scripts.IntegrationManager.Editor.Network; +using IntegrationManager = AnyThink.Scripts.IntegrationManager.Editor.ATIntegrationManager; + +public class ATAssetDatabaseManager : ScriptableObject +{ + public const string SettingsExportPath = "Assets/AnyThinkPlugin/Resources/Assets/ATAssetDatabaseManager.asset"; + + private static ATAssetDatabaseManager instance; + public Network importingNetwork = null; + + public delegate void DownloadPluginProgressCallback(string pluginName, float progress, bool done); + public delegate void ImportPackageCompletedCallback(Network network); + + public DownloadPluginProgressCallback downloadPluginProgressCallback; + public ImportPackageCompletedCallback importPackageCompletedCallback; + + // public Network importingNetwork; + + public static ATAssetDatabaseManager Instance + { + get + { + if (instance == null) + { + var settingsDir = Path.GetDirectoryName(SettingsExportPath); + if (!Directory.Exists(settingsDir)) + { + Directory.CreateDirectory(settingsDir); + } + string settingsFilePath = SettingsExportPath; + + instance = AssetDatabase.LoadAssetAtPath(settingsFilePath); + if (instance != null) return instance; + + instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, settingsFilePath); + // init(); + } + + return instance; + } + } + + private ATAssetDatabaseManager() + { + init(); + } + + private void init() + { + ATLog.log("ATAssetDatabaseManager inited"); + + AssetDatabase.importPackageCompleted += packageName => + { + ATLog.logFormat("importPackageCompleted() >>> packageName: {0} importingNetwork: {1}", new object[] { packageName, importingNetwork }); + if (!IsImportingNetwork(packageName)) return; + ATLog.log("importPackageCompleted() >>> import succeed."); + // ATConfig.saveInstalledNetworkVersion(packageName, ) + // var pluginParentDir = PluginParentDirectory; + // var isPluginOutsideAssetsDir = IsPluginOutsideAssetsDirectory; + // MovePluginFilesIfNeeded(pluginParentDir, isPluginOutsideAssetsDir); + // AddLabelsToAssetsIfNeeded(pluginParentDir, isPluginOutsideAssetsDir); + AssetDatabase.Refresh(); + + CallImportPackageCompletedCallback(importingNetwork); + // importingNetwork = null; + setImportingNetworkNull(); + }; + + AssetDatabase.importPackageCancelled += packageName => + { + ATLog.logFormat("importPackageCancelled() >>> packageName: {0}", new object[] { packageName }); + if (!IsImportingNetwork(packageName)) return; + + // MaxSdkLogger.UserDebug("Package import cancelled."); + // importingNetwork = null; + setImportingNetworkNull(); + }; + + AssetDatabase.importPackageFailed += (packageName, errorMessage) => + { + ATLog.logFormat("importPackageFailed() >>> packageName: {0}, errorMsg: {1}", new object[] { packageName, errorMessage }); + if (!IsImportingNetwork(packageName)) return; + + // MaxSdkLogger.UserError(errorMessage); + // importingNetwork = null; + setImportingNetworkNull(); + }; + } + + private void setImportingNetworkNull() + { + // ATPluginSetting.Instance.ImportingNetwork = null; + importingNetwork = null; + } + + public void CallDownloadPluginProgressCallback(string pluginName, float progress, bool isDone) + { + if (downloadPluginProgressCallback == null) return; + + downloadPluginProgressCallback(pluginName, progress, isDone); + } + + public void CallImportPackageCompletedCallback(Network network) + { + ATLog.log("CallImportPackageCompletedCallback() >>> network: " + network + " importPackageCompletedCallback: " + importPackageCompletedCallback); + if (network != null) + { + ATConfig.saveInstalledNetworkVersion(network.Name, network.LatestVersions); + // ATIntegrationManager.Instance.UpdateCurrentVersions(network); + } + if (importPackageCompletedCallback == null) return; + importPackageCompletedCallback(network); + } + + public string GetPluginFileName(Network network) + { + // return network.Name.ToLowerInvariant() + "_" + network.LatestVersions.Unity + ".unitypackage"; + return network.PluginFileName; + } + + private bool IsImportingNetwork(string packageName) + { + // Note: The pluginName doesn't have the '.unitypacakge' extension included in its name but the pluginFileName does. So using Contains instead of Equals. + //window系统packageName是:项目路径/AnyThinkCore,Mac系统是: AnyThinkCore + #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN + if (packageName.Contains("\\")) + { + string[] packageNameArray = packageName.Split('\\'); + if (packageNameArray != null && packageNameArray.Length > 0) + { + packageName = packageNameArray[packageNameArray.Length -1]; + } + } + #endif + return importingNetwork != null && GetPluginFileName(importingNetwork).Contains(packageName); + } + +} diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs.meta new file mode 100644 index 0000000..44f3b47 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetDatabaseManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ecbff3e4ceb2645ec8bb940d0dde7174 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs new file mode 100644 index 0000000..8cbaff5 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs @@ -0,0 +1,46 @@ +using System; +using UnityEditor; +using UnityEngine; +using AnyThink.Scripts.IntegrationManager.Editor; + +[InitializeOnLoad] +public class ATAssetPostprocessor : AssetPostprocessor +{ + private static readonly string TAG = "ATAssetPostprocessor"; + + static ATAssetPostprocessor() + { + log("ATAssetPostprocessor is now initialized!"); + } + void OnPostprocessAsset(string path) + { + log("OnPostprocessAsset() >>> path: " + path + " assetPath: " + assetPath); + } + + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + foreach (string str in importedAssets) + { + log("imported Asset: " + str); + } + foreach (string str in deletedAssets) + { + log("Deleted Asset: " + str); + } + + for (int i = 0; i < movedAssets.Length; i++) + { + log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]); + } + } + + void OnPreprocessAsset() + { + log("OnPreprocessAsset() >>> called assetPath: " + assetPath); + } + + private static void log(string msg) + { + ATLog.log(TAG, msg); + } +} diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs.meta new file mode 100644 index 0000000..1f78a83 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATAssetPostprocessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e67090c20c92443108527d932a6d5ab6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs new file mode 100644 index 0000000..b85ddfa --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + + // public class ATConfig : ScriptableObject + public class ATConfig + { +public static string PLUGIN_VERSION = "2.0.1"; +public static bool isDebug = false; + private static string LAST_SELECT_COUNTRY_KEY = "country_key"; //国家 + public static int CHINA_COUNTRY = 1; + public static int NONCHINA_COUNTRY = 2; + public static string ANYTHINK_SDK_FILES_PATH = "Assets/AnyThinkAds"; + //国内core aar包的父目录 + public static string CHINA_ANDROID_CORE_FILES_PATH = "Assets/AnyThinkAds/Plugins/Android/China/anythink_base/"; + public static string NONCHINA_ANDROID_CORE_FILES_PATH = "Assets/AnyThinkAds/Plugins/Android/NonChina/anythink_base/"; + //国内Android network aar包的父目录 + public static string CHINA_ANDROID_NETWORK_FILES_PARENT_PATH = "Assets/AnyThinkAds/Plugins/Android/China/mediation/"; + //海外Android network 依赖文件的目录 + public static string NONCHINA_ANDROID_NETWORK_FILES_PARENT_PATH = "Assets/AnyThinkAds/Plugins/Android/NonChina/mediation/"; + //iOS network依赖文件的目录,不区分国家 + public static string IOS_NETWORK_FILES_PARENT_PATH = "Assets/AnyThinkAds/Plugins/iOS/"; + + // 保存已安装的network到本地 + public static void saveInstalledNetworkVersion(string networkName, Versions v) + { + Versions versions = v.clone(); + int country = getLocalCountry(); + + ATLog.log("saveInstalledNetworkVersion() >>> networkName: " + networkName + " unity: " + versions.Unity); + versions = initUnityForVerions(versions, networkName, country); + // ATPluginSetting.Instance.saveInstalledNetwork(networkName, country, versions); + string jsonStr = JsonUtility.ToJson(versions); + PlayerPrefs.SetString(networkName + "_" + country, jsonStr); + PlayerPrefs.Save(); + } + + public static void saveLocalCountry(int country) + { + PlayerPrefs.SetInt(LAST_SELECT_COUNTRY_KEY, country); + PlayerPrefs.Save(); + } + //获取已安装的network版本,包括core network + public static Versions getInstalledNetworkVersion(string networkName, int country) + { + string key = networkName + "_" + country; + string sdkJson = PlayerPrefs.GetString(key); + ATLog.log("getInstalledNetworkVersion() >>> networkName: " + networkName + " sdkJson: " + sdkJson + " country: " + country); + if (sdkJson == null || sdkJson.Length == 0) + { + return null; + } + + Versions versions = JsonUtility.FromJson(sdkJson); + versions = initUnityForVerions(versions, networkName, country); + return versions; + } + + private static Versions initUnityForVerions(Versions versions, string networkName, int country) + { + if (versions == null) + { + return null; + } + //查找本地的android、iOS是否都已安装 + string androidPath = getAndroidNetworkPath(networkName, country); + bool androidInstalled = isInstalledByPath(androidPath); + string iosPath = getIosNetworkPath(networkName); + bool iosInstalled = isInstalledByPath(iosPath); + if (!androidInstalled && iosInstalled) + { + // versions.Android = ""; + versions.Unity = string.Format("ios_{0}", versions.Ios); + } + else if (androidInstalled && !iosInstalled) + { + // versions.Ios = ""; + versions.Unity = string.Format("android_{0}", versions.Android); + } + else if (!androidInstalled && !iosInstalled) + { + versions.Unity = ""; + } + //core network的unity版本是插件版本 + if (networkName.Equals(ATIntegrationManager.AnyThinkNetworkName)) + { + versions.Unity = ATConfig.PLUGIN_VERSION; + } + ATLog.log("initUnityForVerions() >>> networkName: " + networkName + " androidInstalled: " + androidInstalled + " iosInstalled: " + iosInstalled + " unity: " + versions.Unity); + return versions; + } + + public static bool isNetworkInstalled(string networkName, int country) + { + Versions versions = getInstalledNetworkVersion(networkName, country); + if (versions == null) + { + return false; + } + if (networkName.Equals(ATIntegrationManager.AnyThinkNetworkName)) //core network判断是否已安装 + { + string androidPath = getAndroidNetworkPath(networkName, country); + bool androidInstalled = isInstalledByPath(androidPath); + string iosPath = getIosNetworkPath(networkName); + bool iosInstalled = isInstalledByPath(iosPath); + + return androidInstalled && iosInstalled; + } else { //network判断是否已安装 + return !string.IsNullOrEmpty(versions.Unity); + } + } + + public static bool isAndroidNetworkInstalled(string networkName, int country) + { + Versions versions = getInstalledNetworkVersion(networkName, country); + if (versions == null) + { + return false; + } + string androidPath = getAndroidNetworkPath(networkName, country); + bool androidInstalled = isInstalledByPath(androidPath); + return androidInstalled; + } + + public static bool isIOSNetworkInstalled(string networkName, int country) + { + Versions versions = getInstalledNetworkVersion(networkName, country); + if (versions == null) + { + return false; + } + string iosPath = getIosNetworkPath(networkName); + bool iosInstalled = isInstalledByPath(iosPath); + return iosInstalled; + } + + private static string getAndroidNetworkPath(string networkName, int country) + { + if (networkName.Equals(ATIntegrationManager.AnyThinkNetworkName)) + { + return country == CHINA_COUNTRY ? CHINA_ANDROID_CORE_FILES_PATH : NONCHINA_ANDROID_CORE_FILES_PATH; + } + else + { + return country == CHINA_COUNTRY ? CHINA_ANDROID_NETWORK_FILES_PARENT_PATH + networkName.ToLower() : NONCHINA_ANDROID_NETWORK_FILES_PARENT_PATH + networkName.ToLower(); + } + } + + private static string getIosNetworkPath(string networkName) + { + string defaultResult = IOS_NETWORK_FILES_PARENT_PATH + networkName.ToLower(); + if (networkName.Equals(ATIntegrationManager.AnyThinkNetworkName)) + { + return IOS_NETWORK_FILES_PARENT_PATH + networkName; //Core network在本地的目录名称首字母是大写 + } + // else if (networkName.Equals("Pangle")) + // { + // //获取SDK版本 + // // Network coreNework = ATPluginSetting.Instance.CoreNetwork; + // // if (coreNework != null && coreNework.CurrentVersions != null) + // // { + // // string iosSdkVersion = coreNework.CurrentVersions.Ios; + // // string compareVersion = "6.1.78"; + // // ATLog.log("getIosNetworkPath() >>> iosSdkVersion: " + iosSdkVersion); + // // VersionComparisonResult comparisonResult = ATDataUtil.CompareVersions(iosSdkVersion, compareVersion); + // // if (comparisonResult == VersionComparisonResult.Lesser) //小于6.1.78 + // // { + // // string pangleName = isSelectedChina() ? "pangle_China" : "pangle_nonChina"; + // // ATLog.log("getIosNetworkPath() >>> pangleName: " + pangleName); + // // return IOS_NETWORK_FILES_PARENT_PATH + pangleName; + // // } + // // } + // string pangleName = isSelectedChina() ? "pangle_China" : "pangle_nonChina"; + // // ATLog.log("getIosNetworkPath() >>> pangleName: " + pangleName); + // return IOS_NETWORK_FILES_PARENT_PATH + pangleName; + // } + else if (networkName.Equals("MyTarget")) + { + return IOS_NETWORK_FILES_PARENT_PATH + networkName; + } + return defaultResult; + } + + + public static int getLocalCountry() + { + return PlayerPrefs.GetInt(LAST_SELECT_COUNTRY_KEY, CHINA_COUNTRY); //默认是国内 + // return CHINA_COUNTRY; + } + + public static bool isSelectedChina() + { + return getLocalCountry() == CHINA_COUNTRY; + } + + public static void removeInstalledNetworkVersion(string networkName, int country) + { + // int country = getLocalCountry(); + PlayerPrefs.DeleteKey(networkName + "_" + country); + } + + public static string[] getNetworkFilesPath(string networkName, int country) + { + // if (networkName.Equals(ATIntegrationManager.AnyThinkNetworkName)) { + // return new string[]{ANYTHINK_SDK_FILES_PATH}; + // } + string[] filesPath = new string[2]; + filesPath[0] = getAndroidNetworkPath(networkName, country); + filesPath[1] = getIosNetworkPath(networkName); + return filesPath; + } + + private static bool isInstalledByPath(string path) + { + if (Directory.Exists(path)) + { + string[] files = Directory.GetFiles(path); + return files != null && files.Length > 0; + } + return false; + } + + // private void OnEnable() + // { + // EditorApplication.quitting += Save; + // } + + // private void OnDisable() + // { + // EditorApplication.quitting -= Save; + // } + + // private void Save() + // { + // // EditorPrefs.SetInt("MySetting", 1); // 保存您的EditorPrefs数据 + // PlayerPrefs.Save(); // 确保数据已被保存到磁盘上 + // } + } + +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/ATConfig.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs.meta similarity index 83% rename from Assets/AnyThinkPlugin/Script/ATConfig.cs.meta rename to Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs.meta index 77198af..b5781d2 100644 --- a/Assets/AnyThinkPlugin/Script/ATConfig.cs.meta +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c9272816a9c944e828dd591dbae79e04 +guid: 6bfb7071ec4964e539ff5cf42d38b69c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs new file mode 100644 index 0000000..5a58ecf --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs @@ -0,0 +1,397 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public class ATDataUtil + { + // private static string LAST_SELECT_COUNTRY_KEY = "country_key"; //当前选择的country + // public static Network[] chinaNetworks; + // public static Network[] nonChinaNetworks; + + public static Network coreNetwork; + + public static Network[] parseNetworksJson(PluginData pluginData, string netowrksJson) + { + try + { + int country = pluginData.country; + bool isChinaCountry = isChina(country); + + ServerNetworks serverNetworks = JsonUtility.FromJson(netowrksJson); + ServerNetworkInfo[] serverNetworkInfoList; + Network[] networks; + if (isChinaCountry) + { + serverNetworkInfoList = serverNetworks.ChinaSdk; + networks = formatServerNetworks(pluginData, country, serverNetworkInfoList); + // networks = chinaNetworks; + } + else + { + serverNetworkInfoList = serverNetworks.GlobalSdk; + networks = formatServerNetworks(pluginData, country, serverNetworkInfoList); + // networks = nonChinaNetworks; + } + return networks; + } + catch (Exception e) + { + // 错误处理代码 + ATLog.log("parseNetworksJson() >>> failed: " + e); + } + + return null; + } + + public static PluginData parsePluginDataJson(string serverPluginVersionJson) + { + ATLog.log("plugin version data: " + serverPluginVersionJson); + + try + { + var pluginData = new PluginData(); + // var anythink = new Network(); + ServerPluginVersion serverPluginVersion = JsonUtility.FromJson(serverPluginVersionJson); + pluginData.networkUrlVersion = serverPluginVersion.networkUrlVersion; + pluginData.country = ATConfig.getLocalCountry(); + pluginData.pluginVersion = serverPluginVersion.pluginVersion; + return pluginData; + } + catch (Exception e) + { + // 错误处理代码 + ATLog.log("parse version data failed: " + e); + } + + return null; + } + + public static Network[] formatServerNetworks(PluginData pluginData, int country, ServerNetworkInfo[] networkInfoList) + { + if (networkInfoList == null || networkInfoList.Length == 0) + { + return null; + } + int length = networkInfoList.Length; + List networkList = new List(); + + for (int i = 0; i < length; i++) + { + Network network = new Network(); + ServerNetworkInfo serverInfo = networkInfoList[i]; + network.Name = serverInfo.name; + network.DisplayName = serverInfo.displayName; + network.DownloadUrl = serverInfo.downloadUrl; + network.PluginFileName = serverInfo.pluginFileName; + Versions latestVersion = new Versions(); + ServerNetworkVersion serverVersion = serverInfo.versions; + if (serverVersion != null) + { + latestVersion.Android = serverVersion.android; + latestVersion.Ios = serverVersion.ios; + latestVersion.Unity = serverVersion.unity; + } + network.LatestVersions = latestVersion; + + networkList.Add(network); + } + Network coreNetwork = networkList.First(n => n.Name.Equals(ATIntegrationManager.AnyThinkNetworkName)); + //先初始化core network + if (coreNetwork != null) + { + // 获取当前已安装network的版本号 + Versions curVerions = ATConfig.getInstalledNetworkVersion(coreNetwork.Name, country); + Versions latestVersion = coreNetwork.LatestVersions; + if (latestVersion == null) + { + latestVersion = new Versions(); + } + latestVersion.Unity = pluginData.pluginVersion; + coreNetwork.LatestVersions = latestVersion; + ATLog.log("coreNetwork latestVersion: Android=" + latestVersion.Android); + if (curVerions != null) + { + coreNetwork.CurrentVersions = curVerions; + coreNetwork.CurrentToLatestVersionComparisonResult = getVersionComparisonResult(curVerions, latestVersion, false); + } + + ATPluginSetting.Instance.CoreNetwork = coreNetwork; + } + networkList.Remove(coreNetwork); + //后初始化network + foreach (var network in networkList) + { + Versions curVerion = ATConfig.getInstalledNetworkVersion(network.Name, country); + network.CurrentVersions = curVerion; + VersionComparisonResult result = getVersionComparisonResult(curVerion, network.LatestVersions, true); + ATLog.log("formatServerNetworks() >>> compareResult: " + result); + network.CurrentToLatestVersionComparisonResult = result; + } + + Network[] networks = (Network[])networkList.ToArray(); + //排序 + Array.Sort(networks); + return networks; + } + + // public bool isChina() + // { + // int result = EditorPrefs.GetInt(LAST_SELECT_COUNTRY_KEY, 1); + // return result == 1; + // } + + public static bool isChina(int country) + { + return country == ATConfig.CHINA_COUNTRY; + } + + public static VersionComparisonResult getVersionComparisonResult(Versions curVersion, Versions latestVersion, bool isNetwork = false) + { + if (curVersion == null || latestVersion == null) + { + return VersionComparisonResult.Equal; + } + string curUnity = curVersion.Unity; + string latestUnity = latestVersion.Unity; + string curAndroid = curVersion.Android; + string latestAndroid = latestVersion.Android; + string curIos = curVersion.Ios; + string latestIos = latestVersion.Ios; + + VersionComparisonResult compareVersionResult = VersionComparisonResult.Equal; + if (isNetwork) + { + if (string.IsNullOrEmpty(curUnity) || string.IsNullOrEmpty(latestUnity)) + { + return VersionComparisonResult.Equal; + } + compareVersionResult = CompareUnityMediationVersions(curVersion.Unity, latestVersion.Unity); + } + else + { + var unityVersionComparison = CompareVersions(curUnity, latestUnity); + var androidVersionComparison = CompareVersions(curAndroid, latestAndroid); + var iosVersionComparison = CompareVersions(curIos, latestIos); + + if (unityVersionComparison == VersionComparisonResult.Equal && + androidVersionComparison == VersionComparisonResult.Equal && + iosVersionComparison == VersionComparisonResult.Equal) + { + compareVersionResult = VersionComparisonResult.Equal; + } + else if (unityVersionComparison == VersionComparisonResult.Lesser || + androidVersionComparison == VersionComparisonResult.Lesser || + iosVersionComparison == VersionComparisonResult.Lesser) + { + compareVersionResult = VersionComparisonResult.Lesser; + } + else + { + compareVersionResult = VersionComparisonResult.Greater; + } + } + return compareVersionResult; + } + + // public static long compareVersionToInt(string currentVersion, string currentNewVersion) + // { + // if (currentVersion == null || currentVersion.Length == 0 + // || currentNewVersion == null || currentNewVersion.Length == 0) + // { + // return 0; + // } + + // ATLog.log("compareVersionToInt() >>> before curVersion: " + currentVersion + " curNewVersion: " + currentNewVersion); + // string curVersion = currentVersion.Replace(".", "").Replace("_", "").Replace("android", "").Replace("ios", "").Replace(" ", ""); + // string curNewVersion = currentNewVersion.Replace(".", "").Replace("_", "").Replace("android", "").Replace("ios", "").Replace(" ", ""); + // ATLog.log("compareVersionToInt() >>> after curVersion: " + curVersion + " curNewVersion: " + curNewVersion); + // long intCurVersion = long.Parse(curVersion); + // long intNewVersion = long.Parse(curNewVersion); + // return intNewVersion - intCurVersion; + // } + + //比较Unity集成的版本 + public static VersionComparisonResult CompareUnityMediationVersions(string versionA, string versionB) + { + if (versionA.Equals(versionB)) return VersionComparisonResult.Equal; + + // Unity version would be of format: android_w.x.y.z_ios_a.b.c.d + // For Android only versions it would be: android_w.x.y.z + // For iOS only version it would be: ios_a.b.c.d + + // After splitting into their respective components, the versions would be at the odd indices. + var versionAComponents = versionA.Split('_').ToList(); + var versionBComponents = versionB.Split('_').ToList(); + + var androidComparison = VersionComparisonResult.Equal; + if (versionA.Contains("android") && versionB.Contains("android")) + { + var androidVersionA = versionAComponents[1]; + var androidVersionB = versionBComponents[1]; + androidComparison = CompareVersions(androidVersionA, androidVersionB); + + // Remove the Android version component so that iOS versions can be processed. + versionAComponents.RemoveRange(0, 2); + versionBComponents.RemoveRange(0, 2); + } + else if (versionA.Contains("android")) + { + androidComparison = VersionComparisonResult.Greater; + + // Remove the Android version component so that iOS versions can be processed. + versionAComponents.RemoveRange(0, 2); + } + else if (versionB.Contains("android")) + { + androidComparison = VersionComparisonResult.Lesser; + + // Remove the Android version component so that iOS version can be processed. + versionBComponents.RemoveRange(0, 2); + } + + var iosComparison = VersionComparisonResult.Equal; + if (versionA.Contains("ios") && versionB.Contains("ios")) + { + var iosVersionA = versionAComponents[1]; + var iosVersionB = versionBComponents[1]; + iosComparison = CompareVersions(iosVersionA, iosVersionB); + } + else if (versionA.Contains("ios")) + { + iosComparison = VersionComparisonResult.Greater; + } + else if (versionB.Contains("ios")) + { + iosComparison = VersionComparisonResult.Lesser; + } + + + // If either one of the Android or iOS version is greater, the entire version should be greater. + return (androidComparison == VersionComparisonResult.Greater || iosComparison == VersionComparisonResult.Greater) ? VersionComparisonResult.Greater : VersionComparisonResult.Lesser; + } + //只比较Android、iOS + public static VersionComparisonResult CompareVersions(string versionA, string versionB) + { + if (string.IsNullOrEmpty(versionA) || string.IsNullOrEmpty(versionB) || versionA.Equals(versionB)) + { + return VersionComparisonResult.Equal; + } + + // var versionAComponents = versionA.Replace(".", ""); + // var versionBComponents = versionB.Replace(".", ""); + // var charArrayA = versionAComponents.ToCharArray(); + // var charArrayB = versionBComponents.ToCharArray(); + + // for(var i = 0; i < charArrayA.Length; i++) + // { + // var aVersion = 0; + // int.TryParse(charArrayA[i].ToString(), out aVersion); + // var bVersion = 0; + // int.TryParse(charArrayB[i].ToString(), out bVersion); + + // if (aVersion < bVersion) return VersionComparisonResult.Lesser; + // if (aVersion > bVersion) return VersionComparisonResult.Greater; + // } + + try + { + var aVersionArrays = versionA.Split('.'); + var bVersionArrays = versionB.Split('.'); + + var arrayLength = Mathf.Min(aVersionArrays.Length, bVersionArrays.Length); + for (var i = 0; i < arrayLength; i++) + { + var aVersionStr = aVersionArrays[i]; + var bVersionStr = bVersionArrays[i]; + + var aVersionInt = int.Parse(aVersionStr); + var bVersionInt = int.Parse(bVersionStr); + + if (i == arrayLength - 1) //末尾最后一个 + { + if (aVersionStr.Length > bVersionStr.Length) + { + int gapLength = aVersionStr.Length - bVersionStr.Length; + bVersionInt = bVersionInt * (gapLength * 10); + } + else if (aVersionStr.Length < bVersionStr.Length) + { + int gapLength = bVersionStr.Length - aVersionStr.Length; + aVersionInt = aVersionInt * (gapLength * 10); + } + } + if (aVersionInt < bVersionInt) return VersionComparisonResult.Lesser; + if (aVersionInt > bVersionInt) return VersionComparisonResult.Greater; + } + } + catch (Exception e) + { + ATLog.logError("CompareVersions failed: " + e.Message); + } + + // // Split the version string into beta component and the underlying version. + // int piece; + + // // Compare the non beta component of the version string. + // var versionAComponents = versionA.Split('.').Select(version => int.TryParse(version, out piece) ? piece : 0).ToArray(); + // var versionBComponents = versionB.Split('.').Select(version => int.TryParse(version, out piece) ? piece : 0).ToArray(); + // var length = Mathf.Max(versionAComponents.Length, versionBComponents.Length); + // for (var i = 0; i < length; i++) + // { + // var aComponent = i < versionAComponents.Length ? versionAComponents[i] : 0; + // var bComponent = i < versionBComponents.Length ? versionBComponents[i] : 0; + + // if (aComponent < bComponent) return VersionComparisonResult.Lesser; + + // if (aComponent > bComponent) return VersionComparisonResult.Greater; + // } + + return VersionComparisonResult.Equal; + } + } + + //后端下发的Plugin、android、iOS版本号 + [Serializable] + public class ServerPluginVersion + { + public string platformName; + public string networkUrlVersion; + public string pluginVersion; + public string androidVersion; + public string iosVersion; + public string[] versionList; + } + + [Serializable] + public class ServerNetworks + { + public ServerNetworkInfo[] GlobalSdk; + public ServerNetworkInfo[] ChinaSdk; + public string platformName; + public string version; + } + [Serializable] + public class ServerNetworkInfo + { + public string name; + public string displayName; + public string downloadUrl; + public string pluginFileName; + public ServerNetworkVersion versions; + } + [Serializable] + public class ServerNetworkVersion + { + public string android; + public string ios; + public string unity; + } +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs.meta new file mode 100644 index 0000000..3c46f4e --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDataUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca6f64ad482de4a5aa184f487313de57 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs new file mode 100644 index 0000000..a27cc79 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs @@ -0,0 +1,66 @@ +#if !UNITY_2017_2_OR_NEWER +using System; +using System.IO; +using UnityEngine.Networking; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public class ATDownloadHandler : DownloadHandlerScript + { + // Required by DownloadHandler base class. Called when you address the 'bytes' property. + protected override byte[] GetData() + { + return null; + } + + private FileStream fileStream; + + public ATDownloadHandler(string path) : base(new byte[2048]) + { + var downloadDirectory = Path.GetDirectoryName(path); + if (!Directory.Exists(downloadDirectory)) + { + Directory.CreateDirectory(downloadDirectory); + } + + try + { + //Open the current file to write to + fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite); + } + catch (Exception exception) + { + // MaxSdkLogger.UserError(string.Format("Failed to create file at {0}\n{1}", path, exception.Message)); + ATLog.logError(string.Format("Failed to create file at {0}\n{1}", path, exception.Message)); + } + } + + protected override bool ReceiveData(byte[] byteFromServer, int dataLength) + { + if (byteFromServer == null || byteFromServer.Length < 1 || fileStream == null) + { + return false; + } + + try + { + //Write the current data to the file + fileStream.Write(byteFromServer, 0, dataLength); + } + catch (Exception exception) + { + fileStream.Close(); + fileStream = null; + ATLog.logError(string.Format("Failed to download file{0}", exception.Message)); + } + + return true; + } + + protected override void CompleteContent() + { + fileStream.Close(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs.meta new file mode 100644 index 0000000..9c6067f --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATDownloadHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95bc78f07c0814a968d38ba189ba7ed4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs new file mode 100644 index 0000000..e922e3c --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs @@ -0,0 +1,74 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public class ATEditorCoroutine + { + /// + /// Keeps track of the coroutine currently running. + /// + private IEnumerator enumerator; + + /// + /// Keeps track of coroutines that have yielded to the current enumerator. + /// + private readonly List history = new List(); + + private ATEditorCoroutine(IEnumerator enumerator) { + this.enumerator = enumerator; + } + + + public static ATEditorCoroutine startCoroutine(IEnumerator enumerator) { + var coroutine = new ATEditorCoroutine(enumerator); + coroutine.Start(); + return coroutine; + } + + private void Start() + { + EditorApplication.update += OnEditorUpdate; + } + + /// + /// Stops the coroutine. + /// + public void Stop() + { + if (EditorApplication.update == null) return; + + EditorApplication.update -= OnEditorUpdate; + } + + private void OnEditorUpdate() + { + if (enumerator.MoveNext()) + { + // If there is a coroutine to yield for inside the coroutine, add the initial one to history and continue the second one + if (enumerator.Current is IEnumerator) + { + history.Add(enumerator); + enumerator = (IEnumerator) enumerator.Current; + } + } + else + { + // Current coroutine has ended, check if we have more coroutines in history to be run. + if (history.Count == 0) + { + // No more coroutines to run, stop updating. + Stop(); + } + // Step out and finish the code in the coroutine that yielded to it + else + { + var index = history.Count - 1; + enumerator = history[index]; + history.RemoveAt(index); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs.meta new file mode 100644 index 0000000..4783a05 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATEditorCoroutine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c2384eee7cf4456e9d116ab275c07b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs new file mode 100644 index 0000000..f856c64 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs @@ -0,0 +1,493 @@ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; +using UnityEditor.PackageManager.Requests; +using UnityEditor.PackageManager; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public class ATIntegrationManager + { + public static ATIntegrationManager Instance = new ATIntegrationManager(); + + private UnityWebRequest downloadPluginRequest; + + private const string AnyThinkAds = "AnyThinkAds"; + //AnyThink的unity插件 + public static string AnyThinkNetworkName = "Core"; + private const string ATSdkAssetExportPath = "AnyThinkAds/Script/"; + public static readonly string GradleTemplatePath = Path.Combine("Assets/Plugins/Android", "mainTemplate.gradle"); + public static readonly string DefaultPluginExportPath = Path.Combine("Assets", AnyThinkAds); + + + private ATIntegrationManager() + { + + } + + public void CancelDownload() + { + if (downloadPluginRequest == null) return; + + downloadPluginRequest.Abort(); + } + + public IEnumerator loadNetworksData(PluginData pluginData, Action callback) + { + if (pluginData == null) + { + callback(null); + } + else + { + var networksRequest = UnityWebRequest.Get(ATNetInfo.getNetworkListUrl(pluginData.networkUrlVersion)); + var webRequest = networksRequest.SendWebRequest(); + while (!webRequest.isDone) + { + yield return new WaitForSeconds(0.1f); + } + +#if UNITY_2020_1_OR_NEWER + if (networksRequest.result != UnityWebRequest.Result.Success) +#elif UNITY_2017_2_OR_NEWER + if (networksRequest.isNetworkError || networksRequest.isHttpError) +#else + if (networksRequest.isError) +#endif + { + Debug.Log("loadNetworksData failed."); + callback(pluginData); + } + else + { + //解析network列表的版本数据 + string netowrksJson = networksRequest.downloadHandler.text; + pluginData.mediatedNetworks = ATDataUtil.parseNetworksJson(pluginData, netowrksJson); + //初始化AnyThink的core network + Network coreNetwork = ATPluginSetting.Instance.CoreNetwork; + if (coreNetwork != null) + { + pluginData.anyThink = coreNetwork; + } + ATLog.log("loadNetworksData() >>> mediatedNetworks: " + pluginData.mediatedNetworks); + callback(pluginData); + } + } + } + + public IEnumerator loadPluginData(Action callback) + { + var anythinkVersionRequest = UnityWebRequest.Get(ATNetInfo.getPluginConfigUrl()); + var webRequest = anythinkVersionRequest.SendWebRequest(); + while (!webRequest.isDone) + { + yield return new WaitForSeconds(0.1f); + } + +#if UNITY_2020_1_OR_NEWER + if (anythinkVersionRequest.result != UnityWebRequest.Result.Success) +#elif UNITY_2017_2_OR_NEWER + if (anythinkVersionRequest.isNetworkError || anythinkVersionRequest.isHttpError) +#else + if (anythinkVersionRequest.isError) +#endif + { + Debug.Log("loadPluginData failed."); + callback(null); + } + else + { + //解析Anythink的版本数据 + string anythinkVersionJson = anythinkVersionRequest.downloadHandler.text; + PluginData pluginData = ATDataUtil.parsePluginDataJson(anythinkVersionJson); + Debug.Log("loadPluginData succeed."); + callback(pluginData); + } + } + + //默认下载core包,在下载完network的数据时。 + public void downloadCorePlugin(PluginData pluginData) + { + Network network = pluginData.anyThink; + int country = pluginData.country; + ATLog.log("downloadCorePlugin() >>> network: " + network); + if (network == null) + { + return; + } + bool isInstalled = ATConfig.isNetworkInstalled(network.Name, country); + ATLog.log("downloadCorePlugin() >>> isInstalled: " + isInstalled); + if (!isInstalled) + { + downloadPlugin(network, false); + // ATEditorCoroutine.startCoroutine(downloadPluginWithEnumerator(network, false)); + } else { + handlerVersionAdapter(pluginData); + } + } + + public void networkInstallOrUpdate(PluginData pluginData, Network network) + { + bool uninstall = true; + if (pluginData != null) + { + Network coreNetwork = pluginData.anyThink; + if (coreNetwork != null) + { + if (coreNetwork.isReqiureUpdate()) //network有更新,并且core包也有更新,则更新core包,然后core包更新完,会自动去更新全部network + { + uninstall = false; + network = coreNetwork; + } + } + } + int country = ATConfig.getLocalCountry(); + if (ATConfig.isNetworkInstalled(network.Name, country)) + { + if (uninstall) + { + uninstallNetwork(network, country); + } + downloadPlugin(network, false); + } + else + { + downloadPlugin(network, true); + } + } + + /// + /// Downloads the plugin file for a given network. + /// + /// Network for which to download the current version. + /// Whether or not to show the import window when downloading. Defaults to true. + /// + public void downloadPlugin(Network network, bool showImport = true) + { + ATEditorCoroutine.startCoroutine(downloadPluginWithEnumerator(network, showImport)); + } + + public IEnumerator downloadPluginWithEnumerator(Network network, bool showImport = true) + { + ATLog.log("downloadPluginWithEnumerator() >>> network: " + network); + if (downloadPluginRequest != null) + { + downloadPluginRequest.Dispose(); + } + var path = Path.Combine(Application.temporaryCachePath, ATAssetDatabaseManager.Instance.GetPluginFileName(network)); + ATLog.log("downloadPluginWithEnumerator() >>> path: " + path); +#if UNITY_2017_2_OR_NEWER + var downloadHandler = new DownloadHandlerFile(path); +#else + var downloadHandler = new ATDownloadHandler(path); +#endif + downloadPluginRequest = new UnityWebRequest(network.DownloadUrl) + { + method = UnityWebRequest.kHttpVerbGET, + downloadHandler = downloadHandler + }; + +#if UNITY_2017_2_OR_NEWER + var operation = downloadPluginRequest.SendWebRequest(); +#else + var operation = downloadPluginRequest.Send(); +#endif + while (!operation.isDone) + { + yield return new WaitForSeconds(0.1f); // Just wait till downloadPluginRequest is completed. Our coroutine is pretty rudimentary. + if (operation.progress != 1 && operation.isDone) + { + CallDownloadPluginProgressCallback(network.DisplayName, operation.progress, operation.isDone); + } + } + +#if UNITY_2020_1_OR_NEWER + if (downloadPluginRequest.result != UnityWebRequest.Result.Success) +#elif UNITY_2017_2_OR_NEWER + if (downloadPluginRequest.isNetworkError || downloadPluginRequest.isHttpError) +#else + if (downloadPluginRequest.isError) +#endif + { + ATLog.logError(downloadPluginRequest.error); + } + else + { + CallDownloadPluginProgressCallback(network.DisplayName, 1, true); + // importingNetwork = network; + ATAssetDatabaseManager.Instance.importingNetwork = network; + AssetDatabase.Refresh(); + AssetDatabase.ImportPackage(path, showImport); + } + downloadPluginRequest.Dispose(); + downloadPluginRequest = null; + } + + private static void CallDownloadPluginProgressCallback(string pluginName, float progress, bool isDone) + { + var callback = ATAssetDatabaseManager.Instance.downloadPluginProgressCallback; + if (callback == null) return; + + callback(pluginName, progress, isDone); + } + + // private static void CallImportPackageCompletedCallback(Network network) + // { + // ATLog.log("CallImportPackageCompletedCallback() >>> network: " + network); + // if (network != null) + // { + // ATConfig.saveInstalledNetworkVersion(network.Name, network.LatestVersions); + // } + // var callback = ATAssetDatabaseManager.Instance.importPackageCompletedCallback; + // if (callback == null) return; + // callback(network); + // } + + //更新network已安装的版本 + public void UpdateCurrentVersions(Network network) + { + if (network == null) + { + return; + } + bool isCoreNetwork = network.Name.Equals(AnyThinkNetworkName); + Versions curVerions = ATConfig.getInstalledNetworkVersion(network.Name, ATConfig.getLocalCountry()); + network.CurrentVersions = curVerions; + network.CurrentToLatestVersionComparisonResult = ATDataUtil.getVersionComparisonResult(curVerions, network.LatestVersions, !isCoreNetwork); + // if (isCoreNetwork) + // { + // network.CurrentVersions.Unity = ATConfig.PLUGIN_VERSION; + // } + ATLog.log("UpdateCurrentVersions() >>> Name: " + network.Name + " latest Unity Version: " + network.LatestVersions.Unity); + } + public void uninstallNetwork(Network network, int country) + { + foreach (var filePath in ATConfig.getNetworkFilesPath(network.Name, country)) + { + if (Directory.Exists(filePath)) + { + FileUtil.DeleteFileOrDirectory(filePath); + } + if (File.Exists(filePath + ".meta")) + { + FileUtil.DeleteFileOrDirectory(filePath + ".meta"); + } + } + ATConfig.removeInstalledNetworkVersion(network.Name, country); + UpdateCurrentVersions(network); + } + + public void updateAnyThinkPlugin(PluginData pluginData) + { + Network coreNetwork = pluginData.anyThink; + bool unityUpdate = ATDataUtil.CompareVersions(coreNetwork.CurrentVersions.Unity, pluginData.pluginVersion) == VersionComparisonResult.Lesser; + if (unityUpdate) + { + Application.OpenURL(ATNetInfo.getPluginDownloadUrl(pluginData.pluginVersion)); + // ATEditorCoroutine.startCoroutine(downloadAnyThinkPlugin(pluginData.pluginVersion)); + } + else + { + downloadPlugin(coreNetwork); + } + } + + public IEnumerator downloadAnyThinkPlugin(string pluginVersion) + { + Network network = new Network(); + network.Name = "AnyThinkPlugin"; + network.PluginFileName = ATNetInfo.getPluginFileName(pluginVersion); + network.DownloadUrl = ATNetInfo.getPluginDownloadUrl(pluginVersion); + //https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/Plugin/2.0.0/AnyThinkPlugin_2.0.0.unitypackage + var path = Path.Combine(Application.temporaryCachePath, network.PluginFileName); + ATLog.log("downloadPluginWithEnumerator() >>> path: " + path); +#if UNITY_2017_2_OR_NEWER + var downloadHandler = new DownloadHandlerFile(path); +#else + var downloadHandler = new ATDownloadHandler(path); +#endif + var downloadPluginRequest = new UnityWebRequest(network.DownloadUrl) + { + method = UnityWebRequest.kHttpVerbGET, + downloadHandler = downloadHandler + }; + +#if UNITY_2017_2_OR_NEWER + var operation = downloadPluginRequest.SendWebRequest(); +#else + var operation = downloadPluginRequest.Send(); +#endif + while (!operation.isDone) + { + yield return new WaitForSeconds(0.1f); // Just wait till downloadPluginRequest is completed. Our coroutine is pretty rudimentary. + if (operation.progress != 1 && operation.isDone) + { + CallDownloadPluginProgressCallback(network.Name, operation.progress, operation.isDone); + } + } + +#if UNITY_2020_1_OR_NEWER + if (downloadPluginRequest.result != UnityWebRequest.Result.Success) +#elif UNITY_2017_2_OR_NEWER + if (downloadPluginRequest.isNetworkError || downloadPluginRequest.isHttpError) +#else + if (downloadPluginRequest.isError) +#endif + { + ATLog.logError(downloadPluginRequest.error); + } + else + { + CallDownloadPluginProgressCallback(network.Name, 1, true); + // importingNetwork = network; + ATAssetDatabaseManager.Instance.importingNetwork = network; + AssetDatabase.Refresh(); + AssetDatabase.ImportPackage(path, false); + } + } + //处理插件版本,pangle、csj兼容问题 + public void handlerVersionAdapter(PluginData pluginData) { + string comparePluginVersion = "2.0.1"; + //插件版本>=2.0.1 + VersionComparisonResult comparisonResult = ATDataUtil.CompareVersions(pluginData.pluginVersion, comparePluginVersion); + if (comparisonResult == VersionComparisonResult.Equal || comparisonResult == VersionComparisonResult.Greater) { + Network coreNetwork = pluginData.anyThink; + bool isChina = ATConfig.isSelectedChina(); + if (isChina) { + //国内,Android需要把原来已安装的pangle目录删除掉,2.0.1插件后用csj作为目录 + string androidPanglePath = ATConfig.CHINA_ANDROID_NETWORK_FILES_PARENT_PATH + "pangle"; + deleteFilePath(androidPanglePath); + } + //海外,iOS需要把原来已安装的pangle_nonChina目录删除掉,2.0.1插件后用pangle作为目录 + string iOSNonChinaPanglePath = ATConfig.IOS_NETWORK_FILES_PARENT_PATH + "pangle_nonChina"; + //国内,iOS需要把原来已安装的pangle_China目录删除掉,2.0.1插件后用csj作为目录 + string iOSPanglePath = ATConfig.IOS_NETWORK_FILES_PARENT_PATH + "pangle_China"; + deleteFilePath(iOSNonChinaPanglePath); + deleteFilePath(iOSPanglePath); + } + } + + private void deleteFilePath(string filePath) { + if (Directory.Exists(filePath)) + { + FileUtil.DeleteFileOrDirectory(filePath); + } + if (File.Exists(filePath + ".meta")) + { + FileUtil.DeleteFileOrDirectory(filePath + ".meta"); + } + } + } + + + [Serializable] + public class PluginData + { + public string networkUrlVersion; + public string pluginVersion; //插件版本 + public int country = ATConfig.CHINA_COUNTRY; //默认是1=china + public Network anyThink; + public Network[] mediatedNetworks; + } + + [Serializable] + public class Network : IComparable + { + // + // Sample network data: + // + // { + // "Name": "adcolony", + // "DisplayName": "AdColony", + // "DownloadUrl": "https://bintray.com/applovin/Unity-Mediation-Packages/download_file?file_path=AppLovin-AdColony-Adapters-Android-3.3.10.1-iOS-3.3.7.2.unitypackage", + // "PluginFileName": "AppLovin-AdColony-Adapters-Android-3.3.10.1-iOS-3.3.7.2.unitypackage", + // "DependenciesFilePath": "MaxSdk/Mediation/AdColony/Editor/Dependencies.xml", + // "LatestVersions" : { + // "Unity": "android_3.3.10.1_ios_3.3.7.2", + // "Android": "3.3.10.1", + // "Ios": "3.3.7.2" + // } + // } + // + + public string Name; + public string DisplayName; + public string DownloadUrl; + public string DependenciesFilePath; + public string PluginFileName; + public string[] PluginFilePaths; + public Versions LatestVersions; //最新版本 + public Versions CurrentVersions; //当前版本 + [NonSerialized] public VersionComparisonResult CurrentToLatestVersionComparisonResult = VersionComparisonResult.Equal; + // [NonSerialized] public bool RequiresUpdate = CurrentToLatestVersionComparisonResult == VersionComparisonResult.Lesser; + + public bool isReqiureUpdate() + { + return CurrentToLatestVersionComparisonResult == VersionComparisonResult.Lesser; + } + + public int CompareTo(Network other) + { + return this.DisplayName.CompareTo(other.DisplayName); + } + } + + /// + /// A helper data class used to get current versions from Dependency.xml files. + /// + [Serializable] + public class Versions + { + + public string Unity; + + public string Android; + + public string Ios; + + public override bool Equals(object value) + { + var versions = value as Versions; + + return versions != null + && (Unity == null || Unity.Equals(versions.Unity)) + && (Android == null || Android.Equals(versions.Android)) + && (Ios == null || Ios.Equals(versions.Ios)); + } + + public bool HasEqualSdkVersions(Versions versions) + { + return versions != null && versions.Android == Android && versions.Ios == Ios; + } + + public override int GetHashCode() + { + return new { Unity, Android, Ios }.GetHashCode(); + } + + public Versions clone() + { + Versions cloneObj = new Versions(); + cloneObj.Android = Android; + cloneObj.Ios = Ios; + cloneObj.Unity = Unity; + + return cloneObj; + } + } + + public enum VersionComparisonResult + { + Lesser = -1, + Equal = 0, + Greater = 1 + } +} diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs.meta new file mode 100644 index 0000000..314c0f8 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6db074a8f860d40e8b8fd6a1e459ec50 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs new file mode 100644 index 0000000..90265e6 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs @@ -0,0 +1,779 @@ +using System; +using System.Collections; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public class ATIntegrationManagerWindow : EditorWindow + { + + private const string windowTitle = "AnyThink Integration Manager"; + private const string uninstallIconExportPath = "AnyThinkPlugin/Resources/Images/uninstall_icon.png"; + private const string alertIconExportPath = "AnyThinkPlugin/Resources/Images/alert_icon.png"; + private const string warningIconExportPath = "AnyThinkPlugin/Resources/Images/warning_icon.png"; + + private static readonly Color darkModeTextColor = new Color(0.29f, 0.6f, 0.8f); + private GUIStyle titleLabelStyle; + private GUIStyle headerLabelStyle; + private GUIStyle environmentValueStyle; + private GUIStyle wrapTextLabelStyle; + private GUIStyle linkLabelStyle; + private GUIStyle iconStyle; + private Texture2D uninstallIcon; + private Texture2D alertIcon; + private Texture2D warningIcon; + private Vector2 scrollPosition; + private static readonly Vector2 windowMinSize = new Vector2(750, 750); + private const float actionFieldWidth = 60f; + private const float upgradeAllButtonWidth = 80f; + private const float networkFieldMinWidth = 100f; + private const float versionFieldMinWidth = 190f; + private const float privacySettingLabelWidth = 200f; + private const float networkFieldWidthPercentage = 0.22f; + private const float versionFieldWidthPercentage = 0.36f; // There are two version fields. Each take 40% of the width, network field takes the remaining 20%. + private static float previousWindowWidth = windowMinSize.x; + private static GUILayoutOption networkWidthOption = GUILayout.Width(networkFieldMinWidth); + private static GUILayoutOption versionWidthOption = GUILayout.Width(versionFieldMinWidth); + + private static GUILayoutOption sdkKeyTextFieldWidthOption = GUILayout.Width(520); + + private static GUILayoutOption privacySettingFieldWidthOption = GUILayout.Width(400); + private static readonly GUILayoutOption fieldWidth = GUILayout.Width(actionFieldWidth); + private static readonly GUILayoutOption upgradeAllButtonFieldWidth = GUILayout.Width(upgradeAllButtonWidth); + + private ATEditorCoroutine loadDataCoroutine; + private PluginData pluginData; + private bool pluginDataLoadFailed; + private bool networkButtonsEnabled = true; + private bool shouldShowGoogleWarning; + private int curSelectCountryInt; + // private int dropdownIndex = 0; + + + public static void ShowManager() + { + var manager = GetWindow(utility: true, title: windowTitle, focus: true); + manager.minSize = windowMinSize; + } + //定义UI的Style + private void Awake() + { + titleLabelStyle = new GUIStyle(EditorStyles.label) + { + fontSize = 14, + fontStyle = FontStyle.Bold, + fixedHeight = 20 + }; + + headerLabelStyle = new GUIStyle(EditorStyles.label) + { + fontSize = 12, + fontStyle = FontStyle.Bold, + fixedHeight = 18 + }; + + environmentValueStyle = new GUIStyle(EditorStyles.label) + { + alignment = TextAnchor.MiddleRight + }; + + linkLabelStyle = new GUIStyle(EditorStyles.label) + { + wordWrap = true, + normal = { textColor = EditorGUIUtility.isProSkin ? darkModeTextColor : Color.blue } + }; + + wrapTextLabelStyle = new GUIStyle(EditorStyles.label) + { + wordWrap = true + }; + + iconStyle = new GUIStyle(EditorStyles.miniButton) + { + fixedWidth = 18, + fixedHeight = 18, + padding = new RectOffset(1, 1, 1, 1) + }; + + // Load uninstall icon texture. + var uninstallIconData = File.ReadAllBytes(ATSdkUtil.GetAssetPathForExportPath(uninstallIconExportPath)); + uninstallIcon = new Texture2D(0, 0, TextureFormat.RGBA32, false); // 1. Initial size doesn't matter here, will be automatically resized once the image asset is loaded. 2. Set mipChain to false, else the texture has a weird blurry effect. + uninstallIcon.LoadImage(uninstallIconData); + + // Load alert icon texture. + var alertIconData = File.ReadAllBytes(ATSdkUtil.GetAssetPathForExportPath(alertIconExportPath)); + alertIcon = new Texture2D(0, 0, TextureFormat.RGBA32, false); + alertIcon.LoadImage(alertIconData); + + // Load warning icon texture. + var warningIconData = File.ReadAllBytes(ATSdkUtil.GetAssetPathForExportPath(warningIconExportPath)); + warningIcon = new Texture2D(0, 0, TextureFormat.RGBA32, false); + warningIcon.LoadImage(warningIconData); + + ATLog.log("Awake() >>> called"); + ATAssetDatabaseManager.Instance.downloadPluginProgressCallback = OnDownloadPluginProgress; + ATAssetDatabaseManager.Instance.importPackageCompletedCallback = OnImportPackageCompleted; + ATLog.log("OnEnable() >>> called"); + loadPluginData(); + } + + //这个方法在插件启动时会调用,然后脚本重新加载时也会重新调用,所以加载数据放在Awake中 + private void OnEnable() + { + if (ATAssetDatabaseManager.Instance.downloadPluginProgressCallback == null) + { + ATAssetDatabaseManager.Instance.downloadPluginProgressCallback = OnDownloadPluginProgress; + } + + if (ATAssetDatabaseManager.Instance.importPackageCompletedCallback == null) + { + ATAssetDatabaseManager.Instance.importPackageCompletedCallback = OnImportPackageCompleted; + } + } + + private void OnDisable() + { + if (loadDataCoroutine != null) + { + loadDataCoroutine.Stop(); + loadDataCoroutine = null; + } + + ATIntegrationManager.Instance.CancelDownload(); + EditorUtility.ClearProgressBar(); + + // Saves the AppLovinSettings object if it has been changed. + AssetDatabase.SaveAssets(); + } + + + private void OnGUI() + { + // OnGUI is called on each frame draw, so we don't want to do any unnecessary calculation if we can avoid it. So only calculate it when the width actually changed. + if (Math.Abs(previousWindowWidth - position.width) > 1) + { + previousWindowWidth = position.width; + CalculateFieldWidth(); + } + using (var scrollView = new EditorGUILayout.ScrollViewScope(scrollPosition, false, false)) + { + scrollPosition = scrollView.scrollPosition; + GUILayout.Space(5); + EditorGUILayout.LabelField("Region (Only for Android, iOS is not affected by region)", titleLabelStyle); + DrawCountryUI(); + EditorGUILayout.LabelField("AnyThink Plugin Details", titleLabelStyle); + //显示插件版本号 + DrawPluginDetails(); + using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandHeight(false))) + { + EditorGUILayout.LabelField("Mediated Networks", titleLabelStyle); + DrawUpgradeAllButton(); + } + // Draw mediated networks + DrawMediatedNetworks(); + } + if (GUI.changed) + { + ATPluginSetting.Instance.SaveAsync(); + } + } + + /// + /// Callback method that will be called with progress updates when the plugin is being downloaded. + /// + public static void OnDownloadPluginProgress(string pluginName, float progress, bool done) + { + ATLog.logFormat("OnDownloadPluginProgress() >>> pluginName: {0}, progress: {1}, done: {2}", new object[] { pluginName, progress, done }); + // Download is complete. Clear progress bar. + if (done || progress == 1) + { + EditorUtility.ClearProgressBar(); + AssetDatabase.Refresh(); + } + // Download is in progress, update progress bar. + else + { + if (EditorUtility.DisplayCancelableProgressBar(windowTitle, string.Format("Downloading {0} plugin...", pluginName), progress)) + { + ATLog.log("OnDownloadPluginProgress() >>> click cancel download"); + ATIntegrationManager.Instance.CancelDownload(); + EditorUtility.ClearProgressBar(); + AssetDatabase.Refresh(); + } + } + } + + private void OnImportPackageCompleted(Network network) + { + // var parentDirectory = network.Name.Equals(ATIntegrationManager.AnyThinkNetworkName) ? ATIntegrationManager.PluginParentDirectory : ATIntegrationManager.MediationSpecificPluginParentDirectory; + if (pluginData != null && network != null && network.Name.Equals(ATIntegrationManager.AnyThinkNetworkName)) + { + pluginData.anyThink = network; + ATPluginSetting.Instance.CoreNetwork = network; + //更新了core包,则自动更新全部network + if (NetworksRequireUpgrade()) + { + startUpgradeAllNetwork(); + } + } + ATIntegrationManager.Instance.UpdateCurrentVersions(network); + // UpdateShouldShowGoogleWarningIfNeeded(); + } + //获取插件和SDK的版本数据 + private void loadPluginData() + { + if (loadDataCoroutine != null) + { + loadDataCoroutine.Stop(); + } + loadDataCoroutine = ATEditorCoroutine.startCoroutine(ATIntegrationManager.Instance.loadPluginData(data => + { + if (data == null) + { + pluginDataLoadFailed = true; + } + else + { + ATLog.log("loadNetworksData() >>> pluginData: " + data); + pluginData = data; + pluginDataLoadFailed = false; + loadNetworksData(data); + // UpdateShouldShowGoogleWarningIfNeeded(); + } + + CalculateFieldWidth(); + Repaint(); + })); + } + //获取networks + private void loadNetworksData(PluginData pluginData) + { + ATEditorCoroutine.startCoroutine(ATIntegrationManager.Instance.loadNetworksData(pluginData, data => + { + pluginData = data; + ATIntegrationManager.Instance.downloadCorePlugin(data); + Repaint(); + })); + } + + private void switchCountry(int country) + { + // ATIntegrationManager.Instance.switchCountry(pluginData, country); + var originCountry = ATConfig.getLocalCountry(); + pluginData.country = country; + ATConfig.removeInstalledNetworkVersion(ATIntegrationManager.AnyThinkNetworkName, originCountry); + var networks = pluginData.mediatedNetworks; + if (networks != null) + { + foreach(var network in networks) + { + ATConfig.removeInstalledNetworkVersion(network.Name, originCountry); + } + } + ATConfig.saveLocalCountry(country); + //删除国内的core包和network + string anythinkAdsPath = ATConfig.ANYTHINK_SDK_FILES_PATH; + if (Directory.Exists(anythinkAdsPath)) + { + FileUtil.DeleteFileOrDirectory(anythinkAdsPath); + } + string metaFile = anythinkAdsPath + ".meta"; + if (File.Exists(metaFile)) + { + FileUtil.DeleteFileOrDirectory(metaFile); + } + // AssetDatabase.Refresh(); + //重新开始走network + loadPluginData(); + } + + private void CalculateFieldWidth() + { + var currentWidth = position.width; + var availableWidth = currentWidth - actionFieldWidth - 80; // NOTE: Magic number alert. This is the sum of all the spacing the fields and other UI elements. + var networkLabelWidth = Math.Max(networkFieldMinWidth, availableWidth * networkFieldWidthPercentage); + networkWidthOption = GUILayout.Width(networkLabelWidth); + + var versionLabelWidth = Math.Max(versionFieldMinWidth, availableWidth * versionFieldWidthPercentage); + versionWidthOption = GUILayout.Width(versionLabelWidth); + + const int textFieldOtherUiElementsWidth = 45; // NOTE: Magic number alert. This is the sum of all the spacing the fields and other UI elements. + var availableTextFieldWidth = currentWidth - networkLabelWidth - textFieldOtherUiElementsWidth; + sdkKeyTextFieldWidthOption = GUILayout.Width(availableTextFieldWidth); + + var availableUserDescriptionTextFieldWidth = currentWidth - privacySettingLabelWidth - textFieldOtherUiElementsWidth; + privacySettingFieldWidthOption = GUILayout.Width(availableUserDescriptionTextFieldWidth); + } + + private void DrawCountryUI() + { + // GUILayout.BeginHorizontal(); + GUILayout.Space(4); + using (new EditorGUILayout.HorizontalScope("box")) + { + GUILayout.Space(5); + + int countryInt = ATConfig.CHINA_COUNTRY; //默认是中国 + if (pluginData != null) + { + countryInt = pluginData.country; + } + + string[] options = new string[] { "ChinaMainland", "Overseas" }; + // 创建Dropdown组件 + int curDropdownIndex = ATDataUtil.isChina(countryInt) ? 0 : 1; + int dropdownIndex = EditorGUILayout.Popup("Select Region:", curDropdownIndex, options); + + curSelectCountryInt = dropdownIndex == 0 ? ATConfig.CHINA_COUNTRY : ATConfig.NONCHINA_COUNTRY; + //变化才设置 + if (pluginData != null && curSelectCountryInt != countryInt) + { + ATLog.log("DrawCountryUI() >>> curSelectCountryInt: " + curSelectCountryInt + " countryInt: " + countryInt); + //Unity需要更换Network + switchCountry(curSelectCountryInt); + } + GUILayout.Space(5); + } + GUILayout.Space(4); + DrawAndroidXUI(); + // GUILayout.EndHorizontal(); + } + + private void DrawAndroidXUI() + { + if (!ATDataUtil.isChina(curSelectCountryInt)) { + return; + } + EditorGUILayout.LabelField("AndroidX (Only for Android)", titleLabelStyle); + GUILayout.Space(4); + using (new EditorGUILayout.HorizontalScope("box")) + { + GUILayout.Space(5); + + bool enableAndroidX = ATPluginSetting.Instance.EnableAndroidX; + + string[] options = new string[] { "Disable", "Enable" }; + // 创建Dropdown组件 + int lastDropdownIndex = enableAndroidX ? 1 : 0; + int curDropdownIndex = EditorGUILayout.Popup("Enable AndroidX:", lastDropdownIndex, options); + + //变化才设置 + if (curDropdownIndex != lastDropdownIndex) + { + ATLog.log("DrawAndroidXUI() >>> curDropdownIndex: " + curDropdownIndex + " lastDropdownIndex: " + lastDropdownIndex); + ATPluginSetting.Instance.EnableAndroidX = curDropdownIndex == 1; + } + GUILayout.Space(5); + } + GUILayout.Space(4); + } + + private void DrawPluginDetails() + { + // GUILayout.BeginHorizontal(); + GUILayout.Space(10); + using (new EditorGUILayout.VerticalScope("box")) + { + // Draw plugin version details + DrawHeaders("Platform", false); + if (pluginData == null) + { + DrawEmptyPluginData(); + return; + } + var anythink = pluginData.anyThink; + + // Immediately after downloading and importing a plugin the entire IDE reloads and current versions can be null in that case. Will just show loading text in that case. + if (pluginData.anyThink == null || pluginData.anyThink.CurrentVersions == null || pluginData.anyThink.LatestVersions == null) + { + DrawEmptyPluginData(); + } + else + { + ATLog.log("DrawPluginDetails() >>> anythink.CurrentVersions: " + anythink.CurrentVersions + " LatestVersions: " + anythink.LatestVersions); + // Check if a newer version is available to enable the upgrade button. + + DrawPluginDetailRow("Unity 3D", anythink.CurrentVersions.Unity, pluginData.pluginVersion); + DrawPluginDetailRow("Android", anythink.CurrentVersions.Android, anythink.LatestVersions.Android); + DrawPluginDetailRow("iOS", anythink.CurrentVersions.Ios, anythink.LatestVersions.Ios); + + // BeginHorizontal combined with FlexibleSpace makes sure that the button is centered horizontally. + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + + //检查插件和Android、iOS的原生sdk是否需要更新,如果其中之一需要都显示更新按钮 + GUI.enabled = anythink.isReqiureUpdate(); + if (GUILayout.Button(new GUIContent("Upgrade"), fieldWidth)) + { + //点击更新按钮的操作 + ATIntegrationManager.Instance.updateAnyThinkPlugin(pluginData); + } + + GUI.enabled = true; + GUILayout.Space(5); + GUILayout.EndHorizontal(); + + GUILayout.Space(5); + } + +#if !UNITY_2018_2_OR_NEWER + EditorGUILayout.HelpBox("AnyThink Unity plugin will soon require Unity 2018.2 or newer to function. Please upgrade to a newer Unity version.", MessageType.Warning); +#endif + } + + GUILayout.Space(5); + // GUILayout.EndHorizontal(); + } + + private void DrawHeaders(string firstColumnTitle, bool drawAction) + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Space(5); + EditorGUILayout.LabelField(firstColumnTitle, headerLabelStyle, networkWidthOption); + EditorGUILayout.LabelField("Current Version", headerLabelStyle, versionWidthOption); + GUILayout.Space(3); + EditorGUILayout.LabelField("Latest Version", headerLabelStyle, versionWidthOption); + GUILayout.Space(3); + if (drawAction) + { + GUILayout.FlexibleSpace(); + GUILayout.Button("Actions", headerLabelStyle, fieldWidth); + GUILayout.Space(5); + } + } + + GUILayout.Space(4); + } + private void DrawEmptyPluginData() + { + GUILayout.Space(5); + + // Plugin data failed to load. Show error and retry button. + if (pluginDataLoadFailed) + { + GUILayout.Space(10); + GUILayout.BeginHorizontal(); + GUILayout.Space(5); + EditorGUILayout.LabelField("Failed to load plugin data. Please click retry or restart the integration manager.", titleLabelStyle); + if (GUILayout.Button("Retry", fieldWidth)) + { + pluginDataLoadFailed = false; + loadPluginData(); + } + + GUILayout.Space(5); + GUILayout.EndHorizontal(); + GUILayout.Space(10); + } + // Still loading, show loading label. + else + { + GUILayout.Space(10); + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + EditorGUILayout.LabelField("Loading data...", titleLabelStyle); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + GUILayout.Space(10); + } + + GUILayout.Space(5); + } + + private void DrawPluginDetailRow(string platform, string currentVersion, string latestVersion) + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Space(5); + EditorGUILayout.LabelField(new GUIContent(platform), networkWidthOption); + EditorGUILayout.LabelField(new GUIContent(currentVersion), versionWidthOption); + GUILayout.Space(3); + EditorGUILayout.LabelField(new GUIContent(latestVersion), versionWidthOption); + GUILayout.Space(3); + } + + GUILayout.Space(4); + } + + private void DrawUpgradeAllButton() + { + GUI.enabled = NetworksRequireUpgrade(); + if (GUILayout.Button(new GUIContent("Upgrade All"), upgradeAllButtonFieldWidth)) + { + startUpgradeAllNetwork(); + } + + GUI.enabled = true; + GUILayout.Space(10); + } + + private bool NetworksRequireUpgrade() + { + if (pluginData == null || pluginData.mediatedNetworks == null) return false; + + var networks = pluginData.mediatedNetworks; + if (networks == null) + { + return false; + } + try + { + foreach (var network in networks) + { + if (network.CurrentVersions != null && !string.IsNullOrEmpty(network.CurrentVersions.Unity)) + { + ATLog.log("NetworksRequireUpgrade() >>> name: " + network.Name + " isReqiureUpdate: " + network.isReqiureUpdate() + + " curVersion: " + network.CurrentVersions.Unity + " latestVersion: " + network.LatestVersions.Unity); + network.CurrentToLatestVersionComparisonResult = ATDataUtil.getVersionComparisonResult(network.CurrentVersions, network.LatestVersions, true); + if (network.isReqiureUpdate()) + { + return true; + } + } + } + } + catch (Exception e) + { + ATLog.logError("NetworksRequireUpgrade failed: " + e.Message); + } + // return networks.Any(network => network.CurrentVersions != null && ATConfig.isNetworkInstalled(network.Name, ATConfig.getLocalCountry()) && network.isReqiureUpdate()); + return false; + } + + private void DrawMediatedNetworks() + { + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + using (new EditorGUILayout.VerticalScope("box")) + { + DrawHeaders("Network", true); + + // Immediately after downloading and importing a plugin the entire IDE reloads and current versions can be null in that case. Will just show loading text in that case. + if (pluginData == null || pluginData.mediatedNetworks == null) + { + ATLog.log("DrawMediatedNetworks failed."); + DrawEmptyPluginData(); + } + else + { + var networks = pluginData.mediatedNetworks; + foreach (var network in networks) + { + DrawNetworkDetailRow(network); + } + + GUILayout.Space(10); + } + } + + GUILayout.Space(5); + GUILayout.EndHorizontal(); + } + + private void DrawNetworkDetailRow(Network network) + { + if (network == null) return; + + string action; + var currentVersion = ""; + if (network.CurrentVersions != null) + { + currentVersion = network.CurrentVersions.Unity; + } + var latestVersion = network.LatestVersions.Unity; + bool isActionEnabled; + bool isInstalled; + + if (string.IsNullOrEmpty(currentVersion)) + { + action = "Install"; + currentVersion = "Not Installed"; + isActionEnabled = true; + isInstalled = false; + } + else + { + isInstalled = true; + // action = "Installed"; + // isActionEnabled = false; + // A newer version is available + var comparison = network.CurrentToLatestVersionComparisonResult; + if (comparison == VersionComparisonResult.Lesser) + { + action = "Upgrade"; + isActionEnabled = true; + } + // Current installed version is newer than latest version from DB (beta version) + else if (comparison == VersionComparisonResult.Greater) + { + action = "Installed"; + isActionEnabled = false; + } + // Already on the latest version + else + { + action = "Installed"; + isActionEnabled = false; + } + } + + GUILayout.Space(4); + using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandHeight(false))) + { + GUILayout.Space(5); + EditorGUILayout.LabelField(new GUIContent(network.DisplayName), networkWidthOption); + EditorGUILayout.LabelField(new GUIContent(currentVersion), versionWidthOption); + GUILayout.Space(3); + EditorGUILayout.LabelField(new GUIContent(latestVersion), versionWidthOption); + GUILayout.Space(3); + GUILayout.FlexibleSpace(); + + if (network.isReqiureUpdate()) + { + GUILayout.Label(new GUIContent { image = alertIcon, tooltip = "Adapter not compatible, please update to the latest version." }, iconStyle); + } + // else if ((network.DisplayName.Equals("Admob") || network.DisplayName.Equals("GOOGLE_AD_MANAGER_NETWORK")) && shouldShowGoogleWarning) + // { + // GUILayout.Label(new GUIContent { image = warningIcon, tooltip = "You may see unexpected errors if you use different versions of the AdMob and Google Ad Manager adapter SDKs." }, iconStyle); + // } + + GUI.enabled = networkButtonsEnabled && isActionEnabled; + if (GUILayout.Button(new GUIContent(action), fieldWidth)) + { + // Download the plugin.jkfjkfdani + // AppLovinEditorCoroutine.StartCoroutine(AppLovinIntegrationManager.Instance.DownloadPlugin(network)); + // ATIntegrationManager.Instance.downloadPlugin(network); + ATIntegrationManager.Instance.networkInstallOrUpdate(pluginData, network); + } + GUI.enabled = true; + GUILayout.Space(2); + + GUI.enabled = networkButtonsEnabled && isInstalled; + if (GUILayout.Button(new GUIContent { image = uninstallIcon, tooltip = "Uninstall" }, iconStyle)) + { + EditorUtility.DisplayProgressBar("Integration Manager", "Deleting " + network.Name + "...", 0.5f); + ATIntegrationManager.Instance.uninstallNetwork(network, pluginData.country); + //Refresh UI + AssetDatabase.Refresh(); + EditorUtility.ClearProgressBar(); + } + + GUI.enabled = true; + GUILayout.Space(5); + } + + if (isInstalled) + { + // Custom integration for AdMob where the user can enter the Android and iOS App IDs. + if (network.Name.Equals("Admob") && network.CurrentVersions != null) + { + // Custom integration requires Google AdMob adapter version newer than android_19.0.1.0_ios_7.57.0.0. + if (ATDataUtil.CompareUnityMediationVersions(network.CurrentVersions.Unity, "android_19.0.1.0_ios_7.57.0.0") == VersionComparisonResult.Greater) + { + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + using (new EditorGUILayout.VerticalScope("box")) + { + string requiredVersion = "android_19.2.0.0_ios_7.61.0.0"; + string warningMessage = "The current version of AppLovin MAX plugin requires Google adapter version newer than " + requiredVersion + " to enable auto-export of AdMob App ID."; + // if (isPluginMoved) + // { + // requiredVersion = "android_19.6.0.1_ios_7.69.0.0"; + // warningMessage = "Looks like the MAX plugin has been moved to a different directory. This requires Google adapter version newer than " + requiredVersion + " for auto-export of AdMob App ID to work correctly."; + // } + // else + // { + // requiredVersion = "android_19.2.0.0_ios_7.61.0.0"; + // warningMessage = "The current version of AppLovin MAX plugin requires Google adapter version newer than " + requiredVersion + " to enable auto-export of AdMob App ID."; + // } + + GUILayout.Space(2); + if (ATDataUtil.CompareUnityMediationVersions(network.CurrentVersions.Unity, requiredVersion) == VersionComparisonResult.Greater) + { + ATPluginSetting.Instance.AdMobAndroidAppId = DrawTextField("App ID (Android)", ATPluginSetting.Instance.AdMobAndroidAppId, networkWidthOption); + ATPluginSetting.Instance.AdMobIosAppId = DrawTextField("App ID (iOS)", ATPluginSetting.Instance.AdMobIosAppId, networkWidthOption); + } + else + { + EditorGUILayout.HelpBox(warningMessage, MessageType.Warning); + } + } + + GUILayout.EndHorizontal(); + } + } + } + } + + private string DrawTextField(string fieldTitle, string text, GUILayoutOption labelWidth, GUILayoutOption textFieldWidthOption = null) + { + GUILayout.BeginHorizontal(); + GUILayout.Space(4); + EditorGUILayout.LabelField(new GUIContent(fieldTitle), labelWidth); + GUILayout.Space(4); + text = (textFieldWidthOption == null) ? GUILayout.TextField(text) : GUILayout.TextField(text, textFieldWidthOption); + GUILayout.Space(4); + GUILayout.EndHorizontal(); + GUILayout.Space(4); + + return text; + } + + private bool DrawOtherSettingsToggle(bool value, string text) + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Space(4); + var toggleValue = GUILayout.Toggle(value, text); + GUILayout.Space(4); + return toggleValue; + } + } + + private void startUpgradeAllNetwork() + { + ATEditorCoroutine.startCoroutine(UpgradeAllNetworks()); + } + + private IEnumerator UpgradeAllNetworks() + { + networkButtonsEnabled = false; + EditorApplication.LockReloadAssemblies(); + var networks = pluginData.mediatedNetworks; + foreach (var network in networks) + { + // if (ATConfig.isNetworkInstalled(network.Name, ATConfig.getLocalCountry())) + // { + // ATLog.log("UpgradeAllNetworks() >>> name: " + network.Name + " isReqiureUpdate: " + network.isReqiureUpdate() + + // " curVersion: " + network.CurrentVersions.Unity + " latestVersion: " + network.LatestVersions.Unity); + // network.CurrentToLatestVersionComparisonResult = ATDataUtil.getVersionComparisonResult(network.CurrentVersions, network.LatestVersions, true); + // if (network.isReqiureUpdate()) + // { + // yield return ATIntegrationManager.Instance.downloadPluginWithEnumerator(network, false); + // } + // } + if (network.CurrentVersions != null && !string.IsNullOrEmpty(network.CurrentVersions.Unity)) + { + ATLog.log("UpgradeAllNetworks() >>> name: " + network.Name + " isReqiureUpdate: " + network.isReqiureUpdate() + + " curVersion: " + network.CurrentVersions.Unity + " latestVersion: " + network.LatestVersions.Unity); + network.CurrentToLatestVersionComparisonResult = ATDataUtil.getVersionComparisonResult(network.CurrentVersions, network.LatestVersions, true); + if (network.isReqiureUpdate()) + { + yield return ATIntegrationManager.Instance.downloadPluginWithEnumerator(network, false); + } + } + } + + EditorApplication.UnlockReloadAssemblies(); + networkButtonsEnabled = true; + + //The pluginData becomes stale after the networks have been updated, and we should re-load it. + loadPluginData(); + } + } +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs.meta new file mode 100644 index 0000000..de189f8 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATIntegrationManagerWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06d48237d6b6443f1b7cb368fc134467 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs new file mode 100644 index 0000000..4a4379f --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine; + +public class ATLog { + public static void log(string msg) + { + // string msg = + Debug.Log(msg); + } + + public static void log(string tag, string msg) + { + Debug.Log(tag + ": " + msg); + } + + public static void logFormat(string msg, object[] args) + { + Debug.LogFormat(msg, args); + } + + public static void logError(string msg) + { + Debug.LogError(msg); + } +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs.meta new file mode 100644 index 0000000..b3349ca --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATLog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00b0a6e1f40684d3990b321d49f431b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs new file mode 100644 index 0000000..a63cf04 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs @@ -0,0 +1,40 @@ +//菜单栏 + +using UnityEditor; +using UnityEngine; + +// using DownloadManager; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ +#if AnyThinkSDKEditor + public class AnyThinkMenuItems : MonoBehaviour + { + /** + * The special characters at the end represent a shortcut for this action. + * + * % - ctrl on Windows, cmd on macOS + * # - shift + * & - alt + * + * So, (shift + cmd/ctrl + t) will launch the integration manager + */ + [MenuItem("AnyThink/SDK Manager %#t")] + private static void IntegrationManager() + { + + ATIntegrationManagerWindow.ShowManager(); + } + + [MenuItem("AnyThink/Documentation")] + public static void Documentation() + { + if (ATConfig.isSelectedChina()) { + Application.OpenURL("https://docs.toponad.com/#/zh-cn/unity/unity_doc/unity_access_plugin_des_doc"); + } else { + Application.OpenURL("https://docs.toponad.com/#/en-us/unity/unity_doc/unity_access_doc_new?id=_3-integration"); + } + } + } +#endif +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs.meta new file mode 100644 index 0000000..f30a96c --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATMenuItems.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 830af66d7a0ef48aeba18a35f3626b1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs new file mode 100644 index 0000000..36bef46 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs @@ -0,0 +1,45 @@ +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; + + +using UnityEngine; + +namespace AnyThink.Scripts.IntegrationManager.Editor +{ + public static class ATNetInfo { + public static string platformName = "AnyThink"; + public static string ATDownloadDir = "Assets/AnyThinkAds/Dependencies/"; + public static string ATDependencyDir = "Assets/AnyThinkAds/Plugins/"; + public static string sdk = "sdk"; + public static string Android = "Android"; + public static string iOS = "iOS"; + public static string localConfig = "Assets/AnyThinkPlugin/Editor/localConfig.json"; + private static string unityPluginConfigUrl = "https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/unity_plugin_config.json"; //插件和nythink的版本号列表 + private static string unityPluginConfigUrlDebug = "https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/unity_plugin_config_debug.json"; //插件和nythink的版本号列表 + public static string packagePath = "https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/"; + public static int isGlobal=1; //0:国外 //1:国内 + + public static string getPluginConfigUrl() + { + return ATConfig.isDebug ? unityPluginConfigUrlDebug : unityPluginConfigUrl; + } + + public static string getNetworkListUrl(String ver) + { + return "https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/"+ver+"/network_new.json"; + } + + public static string getPluginFileName(string pluginVersion) + { + return "AnyThinkPlugin_" + pluginVersion + ".unitypackage"; + } + //https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/Plugin/2.0.0/AnyThinkPlugin_2.0.0.unitypackage + public static string getPluginDownloadUrl(string pluginVersion) + { + return "https://topon-sdk-release.oss-cn-hangzhou.aliyuncs.com/Unity/Plugin/" + pluginVersion + "/" + getPluginFileName(pluginVersion); + } + } + +} diff --git a/Assets/AnyThinkPlugin/Script/ATNetInfo.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs.meta similarity index 83% rename from Assets/AnyThinkPlugin/Script/ATNetInfo.cs.meta rename to Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs.meta index f438f15..12f64cb 100644 --- a/Assets/AnyThinkPlugin/Script/ATNetInfo.cs.meta +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATNetInfo.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5eb818e47fd664e968f08784520c3f36 +guid: 65fa7225327184fcdbf3ec4d235585f9 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs new file mode 100644 index 0000000..17219c2 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using UnityEngine.Serialization; +using AnyThink.Scripts.IntegrationManager.Editor; +using Network = AnyThink.Scripts.IntegrationManager.Editor.Network; + +public class ATPluginSetting : ScriptableObject +{ + public const string SettingsExportPath = "Assets/AnyThinkPlugin/Resources/Assets/ATPluginSetting.asset"; + + private static ATPluginSetting instance; + [SerializeField] private string adMobAndroidAppId = string.Empty; + [SerializeField] private string adMobIosAppId = string.Empty; + + [SerializeField] private AnyThink.Scripts.IntegrationManager.Editor.Network coreNetwork = null; + + [SerializeField] private bool enableAndroidX = false; + + // [SerializeField] private int country = ATConfig.CHINA_COUNTRY; + + // [SerializeField] private Dictionary installedNetwork = new Dictionary(); + + public static ATPluginSetting Instance + { + get + { + if (instance == null) + { + var settingsDir = Path.GetDirectoryName(SettingsExportPath); + if (!Directory.Exists(settingsDir)) + { + Directory.CreateDirectory(settingsDir); + } + string settingsFilePath = SettingsExportPath; + + instance = AssetDatabase.LoadAssetAtPath(settingsFilePath); + if (instance != null) return instance; + + instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, settingsFilePath); + // initCoreNetwork(); + } + + return instance; + } + } + + // private static void initCoreNetwork() + // { + // Versions curVerions = ATConfig.getInstalledNetworkVersion(ATIntegrationManager.AnyThinkNetworkName, ATConfig.getLocalCountry()); + // if (curVerions != null) + // { + // AnyThink.Scripts.IntegrationManager.Editor.Network coreNetwork = new AnyThink.Scripts.IntegrationManager.Editor.Network(); + // coreNetwork.CurrentVersions = curVerions; + // ATPluginSetting.Instance.CoreNetwork = coreNetwork; + // } + // } + + /// + /// AdMob Android App ID. + /// + public string AdMobAndroidAppId + { + get { return Instance.adMobAndroidAppId; } + set { Instance.adMobAndroidAppId = value; } + } + + /// + /// AdMob iOS App ID. + /// + public string AdMobIosAppId + { + get { return Instance.adMobIosAppId; } + set { Instance.adMobIosAppId = value; } + } + + public AnyThink.Scripts.IntegrationManager.Editor.Network CoreNetwork + { + get { return Instance.coreNetwork; } + set { Instance.coreNetwork = value; } + } + // public void saveInstalledNetwork(string networkName, int country, Versions versions) + // { + // string key = networkName + "_" + country; + // if (installedNetwork.ContainsKey(key)) + // { + // installedNetwork.Remove(key); + // } + // installedNetwork.Add(key, versions); + // SaveAsync(); + // } + + // public Versions getInstalledNetwork(string networkName, int country) + // { + // Versions versions; + // installedNetwork.TryGetValue(networkName + "_" + country, out versions); + // return versions; + // } + + /// + /// Saves the instance of the settings. + /// + public void SaveAsync() + { + EditorUtility.SetDirty(instance); + } + + public bool EnableAndroidX + { + get { return Instance.enableAndroidX; } + set { Instance.enableAndroidX = value; } + } +} diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs.meta new file mode 100644 index 0000000..f6fee0b --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATPluginSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b84d4dee1dff41c89fcad01c952ca4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs new file mode 100644 index 0000000..f1e1cdd --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using UnityEngine; +// #if UNITY_EDITOR //是Unity编辑器才引入 +using UnityEditor; +// #endif + + +public class ATSdkUtil +{ +// #if UNITY_EDITOR + /// + /// Gets the path of the asset in the project for a given Anythink plugin export path. + /// + /// The actual exported path of the asset. + /// The exported path of the MAX plugin asset or the default export path if the asset is not found. + public static string GetAssetPathForExportPath(string exportPath) + { + var defaultPath = Path.Combine("Assets", exportPath); + var assetLabelToFind = "l:al_max_export_path-" + exportPath.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + var assetGuids = AssetDatabase.FindAssets(assetLabelToFind); + + return assetGuids.Length < 1 ? defaultPath : AssetDatabase.GUIDToAssetPath(assetGuids[0]); + } + + public static bool Exists(string filePath) + { + return Directory.Exists(filePath) || File.Exists(filePath); + } +// #endif +} \ No newline at end of file diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs.meta new file mode 100644 index 0000000..aa7c793 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/ATSdkUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: faaeb0026391549249b6b8bb9b2c6078 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef new file mode 100644 index 0000000..16f6ea5 --- /dev/null +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef @@ -0,0 +1,10 @@ +{ + "name": "AnyThinkPlugin.Script.IntegrationManager.Editor", + "references": [ + "AnyThinkPlugin.Script" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [] +} diff --git a/Assets/AnyThinkAds/AnyThinkAds.asmdef.meta b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef.meta similarity index 76% rename from Assets/AnyThinkAds/AnyThinkAds.asmdef.meta rename to Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef.meta index 2a8adf7..f2fdd17 100644 --- a/Assets/AnyThinkAds/AnyThinkAds.asmdef.meta +++ b/Assets/AnyThinkPlugin/Script/IntegrationManager/Editor/AnyThinkPlugin.IntegrationManager.Editor.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c248eb35f205f4a4ca30558ca783f464 +guid: 483a01338fa974b4498cd71261d6e8b9 AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Assets/Editor/ATDownloadManager.cs b/Assets/Editor/ATDownloadManager.cs deleted file mode 100644 index a1f7a49..0000000 --- a/Assets/Editor/ATDownloadManager.cs +++ /dev/null @@ -1,561 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Text.RegularExpressions; -using System.Xml; - -using UnityEditor; -using UnityEngine; -using UnityEngine.Networking; -using ATJson; -using ATProviderInfo; -using ATNet; -using UnityEditor.PackageManager.Requests; -using UnityEditor.PackageManager; - -using ATConf; -public class ATDownloadManager : EditorWindow { - - private GUIStyle headerStyle; - private GUIStyle textStyle; - private GUIStyle boldTextStyle; - - internal class ProviderInfoComparor : IComparer - { - public int Compare(ATInfo x, ATInfo y) - { - return x.providerName.CompareTo(y.providerName); - } - } - - private string filePath = ATNetInfo.networkPath; - private const int Width = 760; - private const int Height = 760; - - private ATEditorCoroutines mEditorCoroutines; - - private UnityWebRequest downloadWebClient; - - private readonly GUILayoutOption buttonWidth = GUILayout.Width(90); - - private readonly SortedSet providersSet = new SortedSet(new ProviderInfoComparor()); - - private ATconfig localConfig = ATconfig.getLocalConfig(); - private ATconfig reqConfig; - private Boolean updateCore = false; - - private ATInfo currentProvider; - private ATInfo coreProvider; - private String versionNo = "-"; - - - public static void showManager(){ - var win = GetWindowWithRect(new Rect(0, 0, Width, Height), true); - win.titleContent = new GUIContent("AnyThink Integration Manager"); - win.Focus(); - } - - private void OnEnable() - { - - mEditorCoroutines = ATEditorCoroutines.StartEditorCoroutine(getVersions()); - - } - - private IEnumerator getVersions(){ - - filePath = ATNetInfo.networkPath; - - UnityWebRequest unityWebRequest = UnityWebRequest.Get(filePath); - var webRequest = unityWebRequest.SendWebRequest(); - while (!webRequest.isDone) - { - - yield return new WaitForSeconds(0.1f); - } - if (!unityWebRequest.isHttpError && !unityWebRequest.isNetworkError) - { - - string json = unityWebRequest.downloadHandler.text; - - Dictionary dic = new Dictionary(); - try - - { - dic = Json.Deserialize(json) as Dictionary; - reqConfig = JsonUtility.FromJson(json); - - Debug.Log("req version"); - // if (selected == 0 ){ - // reloadList(dic, "GlobalSdk"); - - // }else{ - // reloadList(dic, "ChinaSdk"); - // } - ATEditorCoroutines.StartEditorCoroutine(getNetworkList()); - } - - catch (Exception e) - { - Debug.Log("Error getting response " + e.ToString()); - } - - - } - - - Repaint(); - requested = true; - } - - private IEnumerator getNetworkList(){ - - - - filePath = ATNetInfo.getNetworkJson(versionNo); - - Debug.Log("get network list:"+filePath); - - UnityWebRequest unityWebRequest = UnityWebRequest.Get(filePath); - var webRequest = unityWebRequest.SendWebRequest(); - while (!webRequest.isDone) - { - - yield return new WaitForSeconds(0.1f); - } - if (!unityWebRequest.isHttpError && !unityWebRequest.isNetworkError) - { - providersSet.Clear(); - string json = unityWebRequest.downloadHandler.text; - - Dictionary dic = new Dictionary(); - try - - { - dic = Json.Deserialize(json) as Dictionary; - // reqConfig = JsonUtility.FromJson(json); - - Debug.Log("network list:"+ json); - if (selected == 0 ){ - reloadList(dic, "GlobalSdk"); - - }else{ - reloadList(dic, "ChinaSdk"); - } - } - - catch (Exception e) - { - Debug.Log("Error getting response " + e.ToString()); - } - - - } - - - Repaint(); - } - private void reloadList(Dictionary dic, string key){ - object providersJson; - if (dic.TryGetValue(key, out providersJson)) - { - if(providersJson!=null){ - foreach (var item in providersJson as Dictionary) - { - ATInfo info = new ATInfo(); - - if (info.GetFromJson(item.Key, item.Value as Dictionary)) - { - - if(info.displayProviderName != "Core"){ - providersSet.Add(info); - } - else{ - coreProvider = info; - } - - } - } - } - } - } - - private void drawHeaderVersion(){ - - selectedOption = EditorGUILayout.Popup("Version",selectedOption,reqConfig.versionList); - string ver = reqConfig.versionList[selectedOption]; - if(versionNo != ver){ - versionNo = ver; - // ATEditorCoroutines.StartEditorCoroutine(getNetworkList()); - } - GUILayout.Space(5); - - - - using (new EditorGUILayout.HorizontalScope( GUILayout.Width(280))) - { - - - - - GUI.enabled = true; - - // EditorGUILayout.LabelField("Region", GUILayout.Width(45)); - // int opsi = GUILayout.SelectionGrid(selected, options, options.Length, EditorStyles.radioButton); - // // if (selected >=0){ - // // ATEditorCoroutines.StartEditorCoroutine(getVersions()); - // // } - - // if (selected!=opsi) { - - // selected = opsi; - // ATEditorCoroutines.StartEditorCoroutine(getNetworkList()); - // } - - GUILayout.Space(5); - - - if(coreProvider != null){ - - coreProvider.latestUnityVersion = versionNo; - - if (coreProvider.currentUnityVersion == "-") - { - bool btn = GUILayout.Button(new GUIContent - { - text = "Install Core", - tooltip = "" - }, buttonWidth); - if (btn && downloadWebClient == null) - { - GUI.enabled = true; - currentProvider = coreProvider; - updateCore = false; - - - - ATEditorCoroutines.StartEditorCoroutine(DownloadFile(getDownloadUrl(coreProvider.displayProviderName))); - } - - } - else if (coreProvider.currentUnityVersion != versionNo) - { - var btn = GUILayout.Button(new GUIContent - { - text= "Update Core", - tooltip = "" - } - ,buttonWidth); - - if (btn && downloadWebClient == null) - { - GUI.enabled = true; - currentProvider = coreProvider; - updateCore = false; - ATEditorCoroutines.StartEditorCoroutine(DownloadFile(getDownloadUrl(coreProvider.displayProviderName))); - } - } - else - { - GUI.enabled = false; - GUILayout.Button(new GUIContent - { - text = "Core Updated", - tooltip = "" - }, buttonWidth); - } - GUILayout.Space(5); - GUI.enabled = true; - - - } - - } - } - - private void DrawSDKHeader() - { - - using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(false))) - { - - EditorGUILayout.LabelField("Current SDK Version", new GUIStyle(EditorStyles.label) - { - fontStyle = FontStyle.Bold, - fontSize = 13, - fixedHeight = 20, - stretchWidth = true, - fixedWidth = Width / 4, - clipping = TextClipping.Overflow, - padding = new RectOffset(Width / 4 + 15, 0, 0, 0) - }); - GUILayout.Space(85); - EditorGUILayout.LabelField("Latest SDK Version", new GUIStyle(EditorStyles.label) - { - fontStyle = FontStyle.Bold, - fontSize = 13, - fixedHeight = 20, - stretchWidth = true, - fixedWidth = Screen.width / 4, - clipping = TextClipping.Overflow, - }); - } - } - - void DrawProviderItem(ATInfo providerData) - { - if (!providerData.Equals(default(ATInfo))) - { - using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(false))) - { - GUI.enabled = true; - bool isNew = providerData.isNewProvider; - string isNewAddition = isNew ? " - New Network" : string.Empty; - string androidVersion = ""; - string iosVersion = ""; - string tooltipText = "Latest Version: \n " + providerData.providerName + " Adapter Version " + versionNo; - if (!providerData.sdkVersionDic.TryGetValue(ATNetInfo.Android, out androidVersion)) - { - androidVersion = ""; - } - else tooltipText = tooltipText + "\n Android SDK version " + androidVersion; - if (!providerData.sdkVersionDic.TryGetValue(ATNetInfo.iOS, out iosVersion)) - { - iosVersion = ""; - } - else tooltipText = tooltipText + "\n iOS SDK version " + iosVersion; - - EditorGUILayout.LabelField(providerData.displayProviderName + isNewAddition, isNew ? boldTextStyle : textStyle); - EditorGUILayout.LabelField(providerData.currentDisplayVersion, textStyle); - EditorGUILayout.LabelField(providerData.displayVersion, textStyle); - - if (providerData.currentStatues == ATInfo.Status.none) - { - bool btn = GUILayout.Button(new GUIContent - { - text = "Install", - tooltip = tooltipText - }, buttonWidth); - if (btn && downloadWebClient == null) - { - GUI.enabled = true; - currentProvider = providerData; - updateCore = false; - - - if (coreProvider.currentUnityVersion == "-"){ - EditorUtility.DisplayDialog("Install fail","Please install Core package first to proceed","Ok"); - }else{ - ATEditorCoroutines.StartEditorCoroutine(DownloadFile(getDownloadUrl(providerData.displayProviderName))); - } - - } - - } - else if (providerData.currentStatues == ATInfo.Status.installed) - { - var btn = GUILayout.Button(new GUIContent - { - text= "Update", - tooltip = tooltipText - } - ,buttonWidth); - - if (btn && downloadWebClient == null) - { - GUI.enabled = true; - currentProvider = providerData; - updateCore = false; - ATEditorCoroutines.StartEditorCoroutine(DownloadFile(getDownloadUrl(providerData.displayProviderName))); - } - } - else - { - GUI.enabled = false; - GUILayout.Button(new GUIContent - { - text = "Updated", - tooltip = tooltipText - }, buttonWidth); - } - GUILayout.Space(5); - GUI.enabled = true; - } - } - } - private String getDownloadUrl(string network){ - - string region = selected == 0 ? "NonChina" : "China"; - - return ATNetInfo.packagePath + versionNo +"/"+ region +"/"+ATNetInfo.platformName+network+".unitypackage"; - } - private IEnumerator DownloadFile(string downloadFileUrl) - { - - if(currentProvider.displayProviderName == "Core"){ - FileUtil.DeleteFileOrDirectory(ATNetInfo.ATDownloadDir); - FileUtil.DeleteFileOrDirectory(ATNetInfo.ATDependencyDir); - localConfig.resetNetwork(); - } - int fileNameIndex = downloadFileUrl.LastIndexOf("/") + 1; - string downloadFileName = downloadFileUrl.Substring(fileNameIndex); - string fileDownloading = string.Format("Downloading {0}", downloadFileName); - string genericFileName = Regex.Replace(downloadFileName, @"_v+(\d\.\d\.\d\.\d|\d\.\d\.\d)", ""); - string path = Path.Combine(ATNetInfo.ATDownloadDir, genericFileName); - bool isCancelled = false; - downloadWebClient = new UnityWebRequest(downloadFileUrl); - downloadWebClient.downloadHandler = new DownloadHandlerFile(path); - downloadWebClient.SendWebRequest(); - if (!downloadWebClient.isHttpError && !downloadWebClient.isNetworkError) - { - while (!downloadWebClient.isDone) - { - yield return new WaitForSeconds(0.1f); - if (EditorUtility.DisplayCancelableProgressBar("Download Manager", fileDownloading, downloadWebClient.downloadProgress)) - { - if (downloadWebClient.error != null) - { - Debug.LogError(downloadWebClient.error); - } - CancelDownload(); - isCancelled = true; - } - } - } - else - { - Debug.LogError("Error Downloading " + genericFileName + " : " + downloadWebClient.error); - } - - - EditorUtility.ClearProgressBar(); - - if (genericFileName.EndsWith(".unitypackage") && !isCancelled) - { - AssetDatabase.ImportPackage(Path.Combine(ATNetInfo.ATDownloadDir, genericFileName), true); - } - else - { - // in case the download was cancelled, delete the file - if(isCancelled && File.Exists(ATNetInfo.ATDownloadDir + genericFileName)) - { - File.Delete(ATNetInfo.ATDownloadDir + genericFileName); - } - - ATEditorCoroutines.StartEditorCoroutine(getVersions()); - } - - localConfig.updateNetwork(currentProvider); - AssetDatabase.Refresh(); - - - //clean the downloadWebClient object regardless of whether the request succeeded or failed - downloadWebClient.Dispose(); - downloadWebClient = null; - - ATEditorCoroutines.StartEditorCoroutine(getVersions()); - } - - private void CancelDownload() - { - // if downloader object is still active - if (downloadWebClient != null) - { - downloadWebClient.Abort(); - return; - } - - if (mEditorCoroutines != null) - { - mEditorCoroutines.StopEditorCoroutine(); - mEditorCoroutines = null; - } - - downloadWebClient = null; - } - - - void Awake() - { - headerStyle = new GUIStyle(EditorStyles.label) - { - fontStyle = FontStyle.Bold, - fontSize = 14, - fixedHeight = 20, - stretchWidth = true, - fixedWidth = Width / 4 + 5, - clipping = TextClipping.Overflow, - alignment = TextAnchor.MiddleLeft - }; - textStyle = new GUIStyle(EditorStyles.label) - { - fontStyle = FontStyle.Normal, - alignment = TextAnchor.MiddleLeft - - }; - boldTextStyle = new GUIStyle(EditorStyles.label) - { - fontStyle = FontStyle.Bold - }; - - - - } - private void OnDestroy() - { - CancelDownload(); - AssetDatabase.Refresh(); - } - -int selected = ATNetInfo.isGlobal; - static string[] options = new string[] { "Global", "China" }; - string[] dropoptions = new string[] - { - "Option1", "Option2", "Option3", - }; - bool requested = false; - - int selectedOption = 0; - - void OnGUI() - { - - - - GUILayout.Space(10); - - if(reqConfig==null ){ - return; - } - - using (new EditorGUILayout.VerticalScope("box")) - { - - GUILayout.Space(5); - - - drawHeaderVersion(); - GUILayout.Space(5); - DrawSDKHeader(); - GUILayout.Space(5); - GUILayout.BeginHorizontal(); - - } - - // if(coreProvider != null){ - // DrawProviderItem(coreProvider); - // } - - - - foreach (var provider in providersSet) - { - - DrawProviderItem(provider); - GUILayout.Space(2); - } - GUILayout.Space(30); - - } -} \ No newline at end of file diff --git a/Assets/Editor/ATEditorCoroutines.cs b/Assets/Editor/ATEditorCoroutines.cs deleted file mode 100644 index dcc019e..0000000 --- a/Assets/Editor/ATEditorCoroutines.cs +++ /dev/null @@ -1,37 +0,0 @@ -using UnityEditor; -using System.Collections; - -public class ATEditorCoroutines -{ - readonly IEnumerator mRoutine; - - public static ATEditorCoroutines StartEditorCoroutine( IEnumerator routine) - { - ATEditorCoroutines coroutine = new ATEditorCoroutines(routine); - coroutine.start(); - return coroutine; - } - - ATEditorCoroutines(IEnumerator routine) - { - mRoutine = routine; - } - - void start() - { - EditorApplication.update += update; - } - - void update() - { - if(!mRoutine.MoveNext()) - { - StopEditorCoroutine(); - } - } - - public void StopEditorCoroutine() - { - EditorApplication.update -= update; - } -} diff --git a/Assets/Editor/ATMenu.cs b/Assets/Editor/ATMenu.cs deleted file mode 100644 index b89a3d8..0000000 --- a/Assets/Editor/ATMenu.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; - -public class ATMenu : UnityEditor.Editor -{ - // Start is called before the first frame update - // [MenuItem("AnyThink/Documentation", false, 0)] - public static void Documentation() - { - Application.OpenURL("https://docs.toponad.com/#/en-us/unity/download/package?_t=YyEWrxzJVTjbQFhszxvWabdIARg7mzE4"); - } - - // [MenuItem("AnyThink/SDK Manager", false, 0)] - public static void sdkManager() - { - ATDownloadManager.showManager(); - - } - - // Update is called once per frame - void Update() - { - - } -} diff --git a/Assets/Editor/ATMenu.cs.meta b/Assets/Editor/ATMenu.cs.meta deleted file mode 100644 index 848a3ac..0000000 --- a/Assets/Editor/ATMenu.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 82226c0ac90874afc9d1b46b47c9dfb5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Editor/AnyThinkPlugin.Editor.asmdef b/Assets/Editor/AnyThinkPlugin.Editor.asmdef deleted file mode 100644 index 0661bc4..0000000 --- a/Assets/Editor/AnyThinkPlugin.Editor.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "AnyThinkPlugin.Editor", - "rootNamespace": "", - "references": [ - "GUID:c248eb35f205f4a4ca30558ca783f464", - "GUID:50611132f38c26d49a2328608a8945e1" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Editor/AnyThinkPlugin.Editor.asmdef.meta b/Assets/Editor/AnyThinkPlugin.Editor.asmdef.meta deleted file mode 100644 index 5e014a1..0000000 --- a/Assets/Editor/AnyThinkPlugin.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ff19cd1a451e3d44eb0aa28e4406ea6f -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ExternalDependencyManager.meta b/Assets/ExternalDependencyManager.meta index f693961..d85fd79 100644 --- a/Assets/ExternalDependencyManager.meta +++ b/Assets/ExternalDependencyManager.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cba24325095f14c18b3427a6edda27ed +guid: 90c597385ff9346a89d38256315fb735 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ExternalDependencyManager/Editor.meta b/Assets/ExternalDependencyManager/Editor.meta index 4818018..4cb3cae 100644 --- a/Assets/ExternalDependencyManager/Editor.meta +++ b/Assets/ExternalDependencyManager/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a721ae1e21d9c4e46a3fd71ea9e1e902 +guid: 773d3f2446f5440bb892ec25e114d547 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ExternalDependencyManager/Editor/1.2.171.meta b/Assets/ExternalDependencyManager/Editor/1.2.171.meta index 45e9f36..3a3a102 100644 --- a/Assets/ExternalDependencyManager/Editor/1.2.171.meta +++ b/Assets/ExternalDependencyManager/Editor/1.2.171.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 37823a26b763b4784b53b0c6f195b586 +guid: 234e4ac966d8d458687f77d7c25bf3d0 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/Android/baseProjectTemplate.gradle b/Assets/Plugins/Android/baseProjectTemplate.gradle new file mode 100644 index 0000000..b46ea5a --- /dev/null +++ b/Assets/Plugins/Android/baseProjectTemplate.gradle @@ -0,0 +1,29 @@ +allprojects { + buildscript { + repositories {**ARTIFACTORYREPOSITORY** + google() + jcenter() + } + + dependencies { + // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity + // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html + // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle + // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version + classpath 'com.android.tools.build:gradle:4.0.1' + **BUILD_SCRIPT_DEPS** + } + } + + repositories {**ARTIFACTORYREPOSITORY** + google() + jcenter() + flatDir { + dirs "${project(':unityLibrary').projectDir}/libs" + } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/Assets/AnyThinkAds/Dependencies/AnyThinkGDT.unitypackage.meta b/Assets/Plugins/Android/baseProjectTemplate.gradle.meta similarity index 74% rename from Assets/AnyThinkAds/Dependencies/AnyThinkGDT.unitypackage.meta rename to Assets/Plugins/Android/baseProjectTemplate.gradle.meta index 476c153..86972a4 100644 --- a/Assets/AnyThinkAds/Dependencies/AnyThinkGDT.unitypackage.meta +++ b/Assets/Plugins/Android/baseProjectTemplate.gradle.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 957bd8bc9cbce83459807a818f4bbc43 +guid: bbc875056594cf9438be790ffcde5a38 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/Android/gradleTemplate.properties b/Assets/Plugins/Android/gradleTemplate.properties new file mode 100644 index 0000000..8b92460 --- /dev/null +++ b/Assets/Plugins/Android/gradleTemplate.properties @@ -0,0 +1,5 @@ +org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M +org.gradle.parallel=true +android.enableR8=**MINIFY_WITH_R_EIGHT** +unityStreamingAssets=**STREAMING_ASSETS** +**ADDITIONAL_PROPERTIES** diff --git a/Assets/AnyThinkAds/Dependencies/AnyThinkKuaiShou.unitypackage.meta b/Assets/Plugins/Android/gradleTemplate.properties.meta similarity index 74% rename from Assets/AnyThinkAds/Dependencies/AnyThinkKuaiShou.unitypackage.meta rename to Assets/Plugins/Android/gradleTemplate.properties.meta index f25bac5..36d4099 100644 --- a/Assets/AnyThinkAds/Dependencies/AnyThinkKuaiShou.unitypackage.meta +++ b/Assets/Plugins/Android/gradleTemplate.properties.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 69c6ecb25ea2fc94bbae9adeba79f8ff +guid: 6850df6d809fd9a4e8a58c0061503168 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/Android/mainTemplate.gradle b/Assets/Plugins/Android/mainTemplate.gradle index 50d872a..3a7cbfc 100644 --- a/Assets/Plugins/Android/mainTemplate.gradle +++ b/Assets/Plugins/Android/mainTemplate.gradle @@ -5,6 +5,9 @@ maven { url "https://maven.google.com" } + maven { + url "https://artifact.bytedance.com/repository/pangle" // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:6 + } mavenLocal() mavenCentral() } @@ -18,6 +21,12 @@ dependencies { // 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.gromore.cn:gromore-sdk:4.3.0.3' // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:8 + implementation 'com.gromore.cn:pangle-adapter:5.4.1.6.0' // Assets/AnyThinkAds/Plugins/Android/China/Editor/Gromore/Dependencies.xml:9 + implementation 'com.squareup.okhttp3:okhttp:3.12.1' // Assets/AnyThinkAds/Plugins/Android/China/mediation/tap/Editor/Dependencies.xml:5 + 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**} diff --git a/Assets/Runtime/Commercialization.Topon.asmdef b/Assets/Runtime/Commercialization.Topon.asmdef deleted file mode 100644 index 1a1ee77..0000000 --- a/Assets/Runtime/Commercialization.Topon.asmdef +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Commercialization.Topon", - "rootNamespace": "", - "references": [ - "GUID:3198a86b02613024e960e3d04a9638cd", - "GUID:c248eb35f205f4a4ca30558ca783f464" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Runtime/Commercialization.Topon.asmdef.meta b/Assets/Runtime/Commercialization.Topon.asmdef.meta deleted file mode 100644 index 73aacca..0000000 --- a/Assets/Runtime/Commercialization.Topon.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e24290ce95a50bf41b215f8a5eafffba -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Topon_Adapter.meta b/Assets/Topon_Adapter.meta new file mode 100644 index 0000000..1dc1247 --- /dev/null +++ b/Assets/Topon_Adapter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6b3fa1cf57434a40a5f8a94eeecef1e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Runtime.meta b/Assets/Topon_Adapter/Runtime.meta similarity index 77% rename from Assets/Runtime.meta rename to Assets/Topon_Adapter/Runtime.meta index 989c38b..e4e238c 100644 --- a/Assets/Runtime.meta +++ b/Assets/Topon_Adapter/Runtime.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 90eba19658fbb5e40832aac55b0986ab +guid: 18628ae02f3857d4aa15dd1875f7b048 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Runtime/Scripts.meta b/Assets/Topon_Adapter/Runtime/Scripts.meta similarity index 100% rename from Assets/Runtime/Scripts.meta rename to Assets/Topon_Adapter/Runtime/Scripts.meta diff --git a/Assets/Runtime/Scripts/ADListenerAggregator.cs b/Assets/Topon_Adapter/Runtime/Scripts/ADListenerAggregator.cs similarity index 100% rename from Assets/Runtime/Scripts/ADListenerAggregator.cs rename to Assets/Topon_Adapter/Runtime/Scripts/ADListenerAggregator.cs diff --git a/Assets/Runtime/Scripts/ADListenerAggregator.cs.meta b/Assets/Topon_Adapter/Runtime/Scripts/ADListenerAggregator.cs.meta similarity index 100% rename from Assets/Runtime/Scripts/ADListenerAggregator.cs.meta rename to Assets/Topon_Adapter/Runtime/Scripts/ADListenerAggregator.cs.meta diff --git a/Assets/Runtime/Scripts/AwardVideoPlayer.cs b/Assets/Topon_Adapter/Runtime/Scripts/AwardVideoPlayer.cs similarity index 100% rename from Assets/Runtime/Scripts/AwardVideoPlayer.cs rename to Assets/Topon_Adapter/Runtime/Scripts/AwardVideoPlayer.cs diff --git a/Assets/Runtime/Scripts/AwardVideoPlayer.cs.meta b/Assets/Topon_Adapter/Runtime/Scripts/AwardVideoPlayer.cs.meta similarity index 100% rename from Assets/Runtime/Scripts/AwardVideoPlayer.cs.meta rename to Assets/Topon_Adapter/Runtime/Scripts/AwardVideoPlayer.cs.meta diff --git a/Assets/Runtime/Scripts/InteractionPlayer.cs b/Assets/Topon_Adapter/Runtime/Scripts/InteractionPlayer.cs similarity index 100% rename from Assets/Runtime/Scripts/InteractionPlayer.cs rename to Assets/Topon_Adapter/Runtime/Scripts/InteractionPlayer.cs diff --git a/Assets/Runtime/Scripts/InteractionPlayer.cs.meta b/Assets/Topon_Adapter/Runtime/Scripts/InteractionPlayer.cs.meta similarity index 100% rename from Assets/Runtime/Scripts/InteractionPlayer.cs.meta rename to Assets/Topon_Adapter/Runtime/Scripts/InteractionPlayer.cs.meta diff --git a/Assets/Runtime/Scripts/ToponAdController.cs b/Assets/Topon_Adapter/Runtime/Scripts/ToponAdController.cs similarity index 98% rename from Assets/Runtime/Scripts/ToponAdController.cs rename to Assets/Topon_Adapter/Runtime/Scripts/ToponAdController.cs index b6800fc..a1740a7 100644 --- a/Assets/Runtime/Scripts/ToponAdController.cs +++ b/Assets/Topon_Adapter/Runtime/Scripts/ToponAdController.cs @@ -12,6 +12,7 @@ public class ToponAdController : IAdController public void Init(ADConfig adConfig, object[] args) { _adConfig = adConfig; + // ATSdkUtil. ATSDKAPI.setChannel(args[0].ToString()); ATSDKAPI.setLogDebug(args.Length > 1 && (bool)args[1]); ATSDKAPI.initSDK(adConfig.Id , adConfig.Key); diff --git a/Assets/Runtime/Scripts/ToponAdController.cs.meta b/Assets/Topon_Adapter/Runtime/Scripts/ToponAdController.cs.meta similarity index 100% rename from Assets/Runtime/Scripts/ToponAdController.cs.meta rename to Assets/Topon_Adapter/Runtime/Scripts/ToponAdController.cs.meta diff --git a/ProjectSettings/AndroidResolverDependencies.xml b/ProjectSettings/AndroidResolverDependencies.xml index ed9cf72..06d6435 100644 --- a/ProjectSettings/AndroidResolverDependencies.xml +++ b/ProjectSettings/AndroidResolverDependencies.xml @@ -2,6 +2,12 @@ com.android.support:appcompat-v7:28.0.0 com.android.support:design:28.0.0 + com.github.bumptech.glide:glide:4.9.0 + com.gromore.cn:gromore-sdk:4.3.0.3 + com.gromore.cn:pangle-adapter:5.4.1.6.0 + com.squareup.okhttp3:okhttp:3.12.1 + io.reactivex.rxjava2:rxandroid:2.0.1 + io.reactivex.rxjava2:rxjava:2.0.1 @@ -9,7 +15,7 @@ - + diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index d505631..5a669fe 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -253,8 +253,8 @@ PlayerSettings: useCustomLauncherManifest: 0 useCustomMainGradleTemplate: 1 useCustomLauncherGradleManifest: 1 - useCustomBaseGradleTemplate: 0 - useCustomGradlePropertiesTemplate: 0 + useCustomBaseGradleTemplate: 1 + useCustomGradlePropertiesTemplate: 1 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 AndroidTargetDevices: 0 @@ -773,7 +773,8 @@ PlayerSettings: webGLThreadsSupport: 0 webGLDecompressionFallback: 0 webGLPowerPreference: 2 - scriptingDefineSymbols: {} + scriptingDefineSymbols: + Android: AnyThinkSDKEditor additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {}