You've already forked Commercialization.topon
Compare commits
35 Commits
20240605_2
...
1.4.4
| Author | SHA1 | Date | |
|---|---|---|---|
| 09a9b2f972 | |||
| a2cd212456 | |||
| 8d70b7df67 | |||
| 4024c15f5c | |||
| da3d20be8c | |||
| 8d4617f851 | |||
| e3781c731d | |||
| 119dd342f8 | |||
| fd88ca6f76 | |||
| c6230aa4b0 | |||
| a10af2148b | |||
| bec23beb33 | |||
| bcd23a28a0 | |||
| 7370d9cfcf | |||
| 0171d63c21 | |||
| 8d0bfaed54 | |||
| 1768019033 | |||
| c67ac9b851 | |||
| edaa47d69a | |||
| c6e610f440 | |||
| 73fa02eb95 | |||
| 4919b650de | |||
| b671923241 | |||
| 09ce6160e0 | |||
| 8c66da0599 | |||
| d0b0c77247 | |||
| 3a916cc037 | |||
| e2128fbc79 | |||
| 81283ef60a | |||
| 038c7d149f | |||
| 603b813d24 | |||
| 35bb8dfd28 | |||
| 0beb30c82c | |||
| 53a3ffb078 | |||
| e33ff7b333 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -54,4 +54,6 @@ sysinfo.txt
|
||||
|
||||
# Crashlytics generated file
|
||||
crashlytics-build.properties
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
.vscode/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7906f0e7a18774d7cacdf2ec692623de
|
||||
guid: 132d89fdc5b1440dfb33985e4e83a4ab
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -40,6 +40,16 @@ namespace AnyThinkAds.Api
|
||||
public readonly int abtest_id;
|
||||
|
||||
public readonly string reward_custom_data;
|
||||
public readonly int placement_type;
|
||||
public readonly string shared_placement_id;
|
||||
public readonly string bid_floor;
|
||||
public readonly int dismiss_type;
|
||||
public readonly int ad_source_type;
|
||||
public readonly string ad_source_custom_ext;
|
||||
public readonly string network_name;
|
||||
public readonly string show_custom_ext;
|
||||
public readonly string e_c;
|
||||
public readonly int s_id;
|
||||
|
||||
private string callbackJson;
|
||||
|
||||
@@ -94,6 +104,16 @@ namespace AnyThinkAds.Api
|
||||
|
||||
reward_custom_data = jsonData.ContainsKey("reward_custom_data") ? (string)jsonData["reward_custom_data"] : "";
|
||||
|
||||
placement_type = int.Parse(jsonData.ContainsKey("placement_type") ? jsonData["placement_type"].ToString() : "0");
|
||||
shared_placement_id = jsonData.ContainsKey("shared_placement_id") ? jsonData["shared_placement_id"].ToString() : "";
|
||||
bid_floor = jsonData.ContainsKey("bid_floor") ? jsonData["bid_floor"].ToString() : "";
|
||||
dismiss_type = int.Parse(jsonData.ContainsKey("dismiss_type") ? jsonData["dismiss_type"].ToString() : "0");
|
||||
ad_source_type = int.Parse(jsonData.ContainsKey("ad_source_type") ? jsonData["ad_source_type"].ToString() : "0");
|
||||
ad_source_custom_ext = jsonData.ContainsKey("ad_source_custom_ext") ? jsonData["ad_source_custom_ext"].ToString() : "";
|
||||
network_name = jsonData.ContainsKey("network_name") ? jsonData["network_name"].ToString() : "";
|
||||
show_custom_ext = jsonData.ContainsKey("show_custom_ext") ? jsonData["show_custom_ext"].ToString() : "";
|
||||
e_c = jsonData.ContainsKey("e_c") ? jsonData["e_c"].ToString() : "";
|
||||
s_id = int.Parse(jsonData.ContainsKey("s_id") ? jsonData["s_id"].ToString() : "0");
|
||||
}
|
||||
catch (System.Exception e) {
|
||||
System.Console.WriteLine("Exception caught: {0}", e);
|
||||
@@ -150,6 +170,16 @@ namespace AnyThinkAds.Api
|
||||
dataDictionary.Add("custom_rule", custom_rule);
|
||||
dataDictionary.Add("ext_info", ext_info);
|
||||
dataDictionary.Add("reward_custom_data", reward_custom_data);
|
||||
dataDictionary.Add("placement_type", placement_type);
|
||||
dataDictionary.Add("shared_placement_id", shared_placement_id);
|
||||
dataDictionary.Add("bid_floor", bid_floor);
|
||||
dataDictionary.Add("dismiss_type", dismiss_type);
|
||||
dataDictionary.Add("ad_source_type", ad_source_type);
|
||||
dataDictionary.Add("ad_source_custom_ext", ad_source_custom_ext);
|
||||
dataDictionary.Add("network_name", network_name);
|
||||
dataDictionary.Add("show_custom_ext", show_custom_ext);
|
||||
dataDictionary.Add("e_c", e_c);
|
||||
dataDictionary.Add("s_id", s_id);
|
||||
|
||||
return dataDictionary;
|
||||
}
|
||||
|
||||
@@ -46,10 +46,14 @@ namespace AnyThinkAds.Api{
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.usesPixel = false;
|
||||
this.backgroundColor = backgroundColor;
|
||||
this.textColor = textColor;
|
||||
this.textSize = textSize;
|
||||
#if UNITY_ANDROID
|
||||
this.usesPixel = true;
|
||||
#else
|
||||
this.usesPixel = false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,15 +21,18 @@ namespace AnyThinkAds.Api
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.usesPixel = false;
|
||||
}
|
||||
|
||||
public int x = 0;
|
||||
public int y = 0;
|
||||
public int width = 0;
|
||||
public int height = 0;
|
||||
public bool usesPixel = false;
|
||||
|
||||
// public bool usesPixel = false;
|
||||
#if UNITY_ANDROID
|
||||
public bool usesPixel = true;
|
||||
#else
|
||||
public bool usesPixel = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
public class ATSize
|
||||
@@ -45,11 +48,15 @@ namespace AnyThinkAds.Api
|
||||
{
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.usesPixel = false;
|
||||
}
|
||||
|
||||
public int width = 0;
|
||||
public int height = 0;
|
||||
public bool usesPixel = false;
|
||||
|
||||
#if UNITY_ANDROID
|
||||
public bool usesPixel = true;
|
||||
#else
|
||||
public bool usesPixel = false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +93,11 @@ namespace AnyThinkAds.Api
|
||||
client.showDebuggerUI();
|
||||
}
|
||||
|
||||
public static void showDebuggerUI(string debugKey)
|
||||
{
|
||||
client.showDebuggerUI(debugKey);
|
||||
}
|
||||
|
||||
public static void setGDPRLevel(int level)
|
||||
{
|
||||
client.setGDPRLevel(level);
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b000e45df70e44c683d126c70c6c7c5
|
||||
guid: 03106b07c17e248179d51e195b5ea505
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace AnyThinkAds.Common
|
||||
void initSDK(string appId, string appKey);
|
||||
void initSDK(string appId, string appKey, ATSDKInitListener listener);
|
||||
void showDebuggerUI();
|
||||
void showDebuggerUI(string debugKey);
|
||||
void getUserLocation(ATGetUserLocationListener listener);
|
||||
void setGDPRLevel(int level);
|
||||
void showGDPRAuth();
|
||||
|
||||
@@ -163,6 +163,7 @@ namespace AnyThinkAds
|
||||
public void setWXStatus(bool install) { }
|
||||
public void setLocation(double longitude, double latitude) { }
|
||||
public void showDebuggerUI() {}
|
||||
public void showDebuggerUI(string debugKey) {}
|
||||
}
|
||||
|
||||
class UnityBannerClient:IATBannerAdClient
|
||||
|
||||
@@ -153,7 +153,7 @@ namespace AnyThinkAds.Android
|
||||
|
||||
try{
|
||||
if (bannerHelperMap.ContainsKey(placementId)) {
|
||||
this.bannerHelperMap[placementId].Call ("showBannerAd", rect.x, rect.y, rect.width, rect.height, mapJson);
|
||||
this.bannerHelperMap[placementId].Call ("showBannerAd", rect.x, rect.y, rect.width, rect.height, mapJson, rect.usesPixel);
|
||||
}
|
||||
}catch(System.Exception e){
|
||||
System.Console.WriteLine("Exception caught: {0}", e);
|
||||
|
||||
@@ -373,11 +373,15 @@ namespace AnyThinkAds.Android
|
||||
}
|
||||
|
||||
public void showDebuggerUI() {
|
||||
showDebuggerUI("");
|
||||
}
|
||||
|
||||
public void showDebuggerUI(string debugKey) {
|
||||
try
|
||||
{
|
||||
if (this.sdkInitHelper != null)
|
||||
{
|
||||
this.sdkInitHelper.Call("showDebuggerUI");
|
||||
this.sdkInitHelper.Call("showDebuggerUI", debugKey);
|
||||
}
|
||||
}
|
||||
catch (System.Exception e)
|
||||
|
||||
@@ -198,7 +198,13 @@ namespace AnyThinkAds.iOS {
|
||||
public void showDebuggerUI()
|
||||
{
|
||||
Debug.Log("Unity:ATSDKAPIClient::showDebuggerUI()");
|
||||
ATManager.showDebuggerUI();
|
||||
ATManager.showDebuggerUI("");
|
||||
}
|
||||
|
||||
public void showDebuggerUI(string debugKey)
|
||||
{
|
||||
Debug.Log("Unity:ATSDKAPIClient::showDebuggerUI(debugKey)");
|
||||
ATManager.showDebuggerUI(debugKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "ATBannerAdWrapper.h"
|
||||
#import <AnyThinkBanner/AnyThinkBanner.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
#import "ATUnityUtilities.h"
|
||||
//5.6.6版本以上支持 admob 自适应banner (用到时再import该头文件)
|
||||
//#import <GoogleMobileAds/GoogleMobileAds.h>
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
#import "ATBaseUnityWrapper.h"
|
||||
#import "ATUnityUtilities.h"
|
||||
#import "ATUnitySafeThreadDictionary.h"
|
||||
@interface ATBaseUnityWrapper()
|
||||
@property(nonatomic, readonly) NSMutableDictionary<NSString*, NSValue*> *callbacks;
|
||||
@property(nonatomic, readonly) dispatch_queue_t callbackAccessQueue;
|
||||
@property(nonatomic, strong) ATUnitySafeThreadDictionary<NSString*, NSValue*> *callbacks;
|
||||
@end
|
||||
@implementation ATBaseUnityWrapper
|
||||
+(instancetype) sharedInstance {
|
||||
@@ -20,35 +20,29 @@
|
||||
-(instancetype) init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
_callbacks = [NSMutableDictionary<NSString*, NSValue*> dictionary];
|
||||
_callbackAccessQueue = dispatch_queue_create("com.anythink.UnityPackage", DISPATCH_QUEUE_CONCURRENT);
|
||||
_callbacks = [ATUnitySafeThreadDictionary<NSString*, NSValue*> dictionary];
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(void) setCallBack:(void (*)(const char *, const char *))callback forKey:(NSString *)key {
|
||||
__weak ATBaseUnityWrapper* weakSelf = self;
|
||||
if (callback != NULL && [key length] > 0)
|
||||
dispatch_barrier_async(_callbackAccessQueue, ^{
|
||||
weakSelf.callbacks[key] = [NSValue valueWithPointer:(void*)callback];
|
||||
});
|
||||
if (callback != NULL && [key length] > 0) {
|
||||
[self.callbacks setValue:[NSValue valueWithPointer:(void*)callback] forKey:key];
|
||||
}
|
||||
}
|
||||
|
||||
-(void) removeCallbackForKey:(NSString *)key {
|
||||
__weak ATBaseUnityWrapper* weakSelf = self;
|
||||
if ([key length] > 0)
|
||||
dispatch_barrier_async(_callbackAccessQueue, ^{
|
||||
[weakSelf.callbacks removeObjectForKey:key];
|
||||
});
|
||||
if ([key length] > 0) {
|
||||
[self.callbacks removeObjectForKey:key];
|
||||
}
|
||||
}
|
||||
|
||||
-(void(*)(const char*, const char *)) callbackForKey:(NSString*)key {
|
||||
__block void(*callback)(const char*, const char *) = NULL;
|
||||
if ([key length] > 0) {
|
||||
__weak ATBaseUnityWrapper* weakSelf = self;
|
||||
dispatch_barrier_sync(_callbackAccessQueue, ^{
|
||||
callback = (void(*)(const char*, const char *))[weakSelf.callbacks[key] pointerValue];
|
||||
});
|
||||
callback = (void(*)(const char*, const char *))[self.callbacks[key] pointerValue];
|
||||
}
|
||||
return callback;
|
||||
}
|
||||
@@ -61,89 +55,100 @@
|
||||
return nil;
|
||||
}
|
||||
|
||||
-(void) invokeCallback:(NSString*)callback placementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra {
|
||||
if ([self callbackForKey:placementID] != NULL) {
|
||||
if ([callback isKindOfClass:[NSString class]] && [callback length] > 0) {
|
||||
-(void) invokeCallback:(NSString*)callback placementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extraParams {
|
||||
|
||||
__block NSDictionary* extra = extraParams;
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
@try {
|
||||
|
||||
NSMutableDictionary *paraDict = [NSMutableDictionary dictionaryWithObject:callback forKey:@"callback"];
|
||||
|
||||
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] isKindOfClass:[NSNumber class]]) {
|
||||
[extraDataTemp setValue:extraDataDictM[key] forKey:key];
|
||||
if ([self callbackForKey:placementID] != NULL) {
|
||||
if ([callback isKindOfClass:[NSString class]] && [callback length] > 0) {
|
||||
|
||||
NSMutableDictionary *paraDict = [NSMutableDictionary dictionaryWithObject:callback forKey:@"callback"];
|
||||
|
||||
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] isKindOfClass:[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"];
|
||||
} else {
|
||||
msgDict[@"extra"] = extra;
|
||||
}
|
||||
}
|
||||
if ([extraDataTemp count]) {
|
||||
[extraDictM setValue:extraDataTemp forKey:kATUnityUserExtraDataKey];
|
||||
} else {
|
||||
[extraDictM removeObjectForKey:kATUnityUserExtraDataKey];
|
||||
|
||||
paraDict[@"msg"] = msgDict;
|
||||
|
||||
if ([placementID isKindOfClass:[NSString class]] && ![ATUnityUtilities isEmpty:placementID]) {
|
||||
msgDict[@"placement_id"] = placementID;
|
||||
};
|
||||
|
||||
if ([error isKindOfClass:[NSError class]]) {
|
||||
|
||||
NSMutableDictionary *errorDict = [NSMutableDictionary dictionaryWithObject:[NSString stringWithFormat:@"%ld", error.code] forKey:@"code"];
|
||||
|
||||
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedDescriptionKey]]) {
|
||||
errorDict[@"desc"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedDescriptionKey]];
|
||||
} else {
|
||||
errorDict[@"desc"] = @"";
|
||||
}
|
||||
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedFailureReasonErrorKey]]) {
|
||||
errorDict[@"reason"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedFailureReasonErrorKey]];
|
||||
} else {
|
||||
errorDict[@"reason"] = @"";
|
||||
}
|
||||
msgDict[@"error"] = errorDict;
|
||||
}
|
||||
extra = extraDictM;
|
||||
}
|
||||
|
||||
if (extra[@"extra"] != nil) {
|
||||
msgDict[@"extra"] = extra[@"extra"];
|
||||
msgDict[@"rewarded"] = extra[@"rewarded"];
|
||||
} else {
|
||||
msgDict[@"extra"] = extra;
|
||||
|
||||
[self callbackForKey:placementID]([self scriptWrapperClass].UTF8String, paraDict.jsonString.UTF8String);
|
||||
}
|
||||
}
|
||||
} @catch (NSException *exception) {
|
||||
|
||||
paraDict[@"msg"] = msgDict;
|
||||
|
||||
if ([placementID isKindOfClass:[NSString class]] && ![ATUnityUtilities isEmpty:placementID]) {
|
||||
msgDict[@"placement_id"] = placementID;
|
||||
};
|
||||
|
||||
if ([error isKindOfClass:[NSError class]]) {
|
||||
|
||||
NSMutableDictionary *errorDict = [NSMutableDictionary dictionaryWithObject:[NSString stringWithFormat:@"%ld", error.code] forKey:@"code"];
|
||||
|
||||
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedDescriptionKey]]) {
|
||||
errorDict[@"desc"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedDescriptionKey]];
|
||||
} else {
|
||||
errorDict[@"desc"] = @"";
|
||||
}
|
||||
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedFailureReasonErrorKey]]) {
|
||||
errorDict[@"reason"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedFailureReasonErrorKey]];
|
||||
} else {
|
||||
errorDict[@"reason"] = @"";
|
||||
}
|
||||
msgDict[@"error"] = errorDict;
|
||||
}
|
||||
|
||||
[self callbackForKey:placementID]([self scriptWrapperClass].UTF8String, paraDict.jsonString.UTF8String);
|
||||
}
|
||||
}
|
||||
} @finally {}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (NSArray *)jsonStrToArray:(NSString *)jsonString{
|
||||
|
||||
|
||||
|
||||
NSError *error;
|
||||
NSArray *array = [NSArray array];
|
||||
|
||||
@try {
|
||||
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
|
||||
|
||||
|
||||
array = [NSJSONSerialization JSONObjectWithData:jsonData
|
||||
options:NSJSONReadingMutableContainers
|
||||
error:&error];
|
||||
options:NSJSONReadingMutableContainers
|
||||
error:&error];
|
||||
if(error){
|
||||
return [NSArray array];
|
||||
}
|
||||
} @catch (NSException *exception) {
|
||||
NSLog(@"jsonStrToArray --- exception:%@",exception);
|
||||
} @finally {}
|
||||
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#import "ATInterstitialAdWrapper.h"
|
||||
#import "ATUnityUtilities.h"
|
||||
#import <AnyThinkInterstitial/AnyThinkInterstitial.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
|
||||
NSString *const kLoadUseRVAsInterstitialKey = @"UseRewardedVideoAsInterstitial";
|
||||
NSString *const kInterstitialExtraAdSizeKey = @"interstitial_ad_size";
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "ATBaseUnityWrapper.h"
|
||||
#import <AnyThinkNative/ATNativeADDelegate.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
|
||||
extern NSString *const kParsedPropertiesFrameKey;
|
||||
extern NSString *const kParsedPropertiesBackgroundColorKey;
|
||||
|
||||
@@ -10,9 +10,7 @@
|
||||
#import "ATUnityUtilities.h"
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AnyThinkNative/ATAdManager+Native.h>
|
||||
#import <AnyThinkNative/ATNativeAdConfiguration.h>
|
||||
#import <AnyThinkNative/ATNativeADView.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
#import "ATAutolayoutCategories.h"
|
||||
#import "ATUnityManager.h"
|
||||
#import "ATNativeSelfRenderView.h"
|
||||
@@ -186,9 +184,12 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() {
|
||||
|
||||
CGRect adViewFrame = CGRectFromString(at_parseUnityProperties(metrics[@"parent"])[kParsedPropertiesFrameKey]);
|
||||
CGRect mediaViewFrame = CGRectFromString(parsedMetrics[kNativeAssetMainImage][kParsedPropertiesFrameKey]);
|
||||
CGRect logoFrame = CGRectFromString(parsedMetrics[kNativeAssetSponsorImage][kParsedPropertiesFrameKey]);
|
||||
ATNativeADConfiguration *configuration = [ATNativeADConfiguration new];
|
||||
configuration.ADFrame = CGRectMake(0, 0, CGRectGetWidth(adViewFrame), CGRectGetHeight(adViewFrame));
|
||||
configuration.mediaViewFrame = mediaViewFrame;
|
||||
configuration.logoViewFrame = logoFrame;
|
||||
|
||||
configuration.delegate = self;
|
||||
if (extraDict[kATNativeAdAdaptiveHeightKey] != nil) {
|
||||
configuration.sizeToFit = [extraDict[kATNativeAdAdaptiveHeightKey] boolValue];
|
||||
@@ -206,13 +207,13 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() {
|
||||
|
||||
selfRenderView.backgroundColor = [UIColor colorWithHexString:parsedMetrics[kNativeAssetMainImage][@"background_color"]];
|
||||
|
||||
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"AnyThinkSDK" ofType:@"bundle"]];
|
||||
|
||||
UIImage * img = [UIImage imageNamed:@"icon_webview_close" inBundle:bundle compatibleWithTraitCollection:nil];
|
||||
[selfRenderView.dislikeButton setImage:img forState:0];
|
||||
|
||||
ATNativeADView *adview = [self getNativeADView:configuration offer:offer selfRenderView:selfRenderView withPlacementId:placementID];
|
||||
[self prepareWithNativePrepareInfo:selfRenderView nativeADView:adview];
|
||||
[offer rendererWithConfiguration:configuration selfRenderView:selfRenderView nativeADView:adview];
|
||||
// 是否隐藏内部渲染logoView
|
||||
if (logoFrame.size.width == 0 || logoFrame.size.height == 0) {
|
||||
adview.logoImageView.hidden = YES;
|
||||
}
|
||||
adview.ctaLabel.hidden = [adview.nativeAd.ctaText length] == 0;
|
||||
if (adview != nil) {
|
||||
[self removeNativeAdViewWithPlacementID:placementID];
|
||||
@@ -251,7 +252,6 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() {
|
||||
prepareInfo.ratingLabel = selfRenderView.ratingLabel;
|
||||
prepareInfo.iconImageView = selfRenderView.iconImageView;
|
||||
prepareInfo.mainImageView = selfRenderView.mainImageView;
|
||||
prepareInfo.logoImageView = selfRenderView.logoImageView;
|
||||
prepareInfo.dislikeButton = selfRenderView.dislikeButton;
|
||||
prepareInfo.ctaLabel = selfRenderView.ctaLabel;
|
||||
prepareInfo.mediaView = selfRenderView.mediaView;
|
||||
@@ -290,8 +290,6 @@ UIEdgeInsets SafeAreaInsets_ATUnityNative() {
|
||||
|
||||
selfRenderView.mediaView = mediaView;
|
||||
[selfRenderView addSubview:mediaView];
|
||||
//避免被遮挡
|
||||
[selfRenderView bringSubviewToFront:selfRenderView.logoImageView];
|
||||
}
|
||||
|
||||
[nativeADView registerClickableViewArray:array];
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AnyThinkNative/AnyThinkNative.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@@ -21,7 +21,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property(nonatomic, strong) UILabel *ratingLabel;
|
||||
@property(nonatomic, strong) UIImageView *iconImageView;
|
||||
@property(nonatomic, strong) UIImageView *mainImageView;
|
||||
@property(nonatomic, strong) UIImageView *logoImageView;
|
||||
@property(nonatomic, strong) UIImageView *sponsorImageView;
|
||||
@property(nonatomic, strong) UIButton *dislikeButton;
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
//
|
||||
|
||||
#import "ATNativeSelfRenderView.h"
|
||||
#import <AnyThinkSDK/ATImageLoader.h>
|
||||
#import "ATNativeAdWrapper.h"
|
||||
#import "ATAutolayoutCategories.h"
|
||||
#import "ATUnityUtilities.h"
|
||||
@@ -97,25 +96,26 @@
|
||||
self.mainImageView.translatesAutoresizingMaskIntoConstraints = false;
|
||||
[self addSubview:self.mainImageView];
|
||||
|
||||
self.logoImageView = [[UIImageView alloc]init];
|
||||
self.logoImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
self.logoImageView.userInteractionEnabled = YES;
|
||||
self.logoImageView.translatesAutoresizingMaskIntoConstraints = false;
|
||||
[self addSubview:self.logoImageView];
|
||||
|
||||
self.dislikeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
self.dislikeButton.translatesAutoresizingMaskIntoConstraints = false;
|
||||
UIImage *closeImg = [UIImage imageNamed:@"icon_webview_close" inBundle:[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"AnyThinkSDK" ofType:@"bundle"]] compatibleWithTraitCollection:nil];
|
||||
|
||||
self.dislikeButton.backgroundColor = [UIColor whiteColor];
|
||||
[self.dislikeButton setImage:closeImg forState:0];
|
||||
[self.dislikeButton setImage:[self getCloseImage] forState:0];
|
||||
[self addSubview:self.dislikeButton];
|
||||
}
|
||||
|
||||
|
||||
- (UIImage *)getCloseImage {
|
||||
|
||||
NSString *imageBase64String = @"iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAEigAwAEAAAAAQAAAEgAAAAAYwsr7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAABxpRE9UAAAAAgAAAAAAAAAkAAAAKAAAACQAAAAkAAACiSuooU0AAAJVSURBVHgB5JqhbsMwEECLisqGhldYNNaxqlJRP2CoY8Wjo/ub4UllI5VGy8f6ASMBA0XbvWiuXKtpnOQcO+lJJ8eRY989351dqYNBuzKU5W5EJ6IPogvRx39dS2ureb+U94zlm1vR3glQcA5Hn0RtCHWfmetOdCTaSbGh1IXg+52B1QlQgLkX1YoUX0iMIyVZO8moignGhWhACas0hMKJUa6hsfvYRJ2KJkTNVDQ2iLL1sRFbWxXyPMWoKYKFra3VJlIqRhEuct73PTYHT7mJLOJrUKrj8CGIcISm6nRVu/BFVfoQOS5EtUgib93J+9KnnjaSkXzdxYLsu4H4ho+1ZChfdeko94XijsNHfK0sXbgEus7W7eNrJelz3SmCWKkeXUNquaC8U61P9x0XQlm/9H5ERb/G6DHgONWGl4qRSvRsNpv3/X7/tdvtPufz+YssaAxQb99ElNe6GEWNowc4v5ZkWfYdCtK5tRQ2ozCKVE4udtPikz+GgOTCMWvOZjONiD37M2SpQH+93W4/jLF2qwmpCA5raPggc8DiREbSU6kP4/H4GUNtOOZZA1IRnMPh8LNarV61/JB5Toq1SnoZ46g5ISC1CIdgmYgehZBSiSAzjzakluHA4iTNVOFoQ4oABx7H04zfIEEAMW/TSIoEx/DgfwR5rpkXQdq6kCLDgUVeh6bsdGitCikBODCBTV6MggNiA3whJQIHJgsANf55gfO+Wgap6KIZ4J7jYzNs2gUEyEuQzKXSbiPBAWAOyIek+hhfSBHhGJ/904Pd19QySAnAWf8BAAD///Z/hqsAAAJUSURBVOWaoVLDQBCGT6HqUGgqq3CVnc5U9QFQwVVja3mMGjSamTpMXwBbXB8AU4Gogv1DfyYtuSS929xd2p25WSYkd/992d3bMBhjzCzmWK1Wb98W2263n+PxeB5Tn6wdD9ByuXy1sPm7nAAkcx8DUhM4pBQREtiEB2SDs9vtvgCDYIo+EqQpAE1kBKtDVXCyLHtCzUkIUg5oGApQHRzqSAgS2JgBhbXpm8KhhkQggY25pqi2/KlwqCMBSDeixVzJeKAobe8KhzoiQxIZv4ZipF6ofeFQUyRIeYHe89GvQ1pwIkK6JRx4pJlaBGnDobbAkdQDmKKppNlisXguNnj8GU0g+hxZ0OtFVEHabDYfvvPvnz9IL0IaaEwOkYRCrwWH+qogjUajOe/z8AfpJfPkhjTzPs3W6/U7wcBrwxGNeQTaIPX7/Ufe4+jz7y95ttTu5KpaCrQFhxqLkLDWixh/5+HBwGoqUSSzzxDqCm+z0ctSXAvR8684H9PyjiIA6uiojB6CQhRF+RtRZKiVtYdw6PEN0tUocNVdenIRSJkfXhAk7PVku5RUQ2phr06Giu7dG8kcrmHf9nPYW+2pVUfunOvRyXXHBkvlMySxSMKeVO2c+qNG/Y4LvXOIJPXIOQaJvO1i4YZm1NMg1pNVutRtQys0BzX0Dl1oJqHRuc/RIIqUSzGaoClYSjUBiZMhBVCoNdASNWpswJDnsUAlDaYMGFJvKqPtzwWsMZCRZMSIrlpDVGnCQqR0HkoVNRROvHGcLtgo6lZZ7eL1yf5ePIP/IwgaKT805vxmzF7SHAAAAABJRU5ErkJggg==";
|
||||
|
||||
UIImage *closeImage = [UIImage imageWithData:[[NSData alloc] initWithBase64EncodedString:imageBase64String options:NSDataBase64DecodingIgnoreUnknownCharacters]];
|
||||
NSLog(@"getCloseImage--%@",closeImage);
|
||||
return closeImage;
|
||||
}
|
||||
|
||||
|
||||
- (void)setupUI{
|
||||
|
||||
|
||||
if (self.nativeAdOffer.nativeAd.icon) {
|
||||
self.iconImageView.image = self.nativeAdOffer.nativeAd.icon;
|
||||
}
|
||||
@@ -125,8 +125,6 @@
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.iconImageView setImage:image];
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}];
|
||||
|
||||
@@ -139,28 +137,12 @@
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.mainImageView setImage:image];
|
||||
});
|
||||
|
||||
}
|
||||
}];
|
||||
|
||||
|
||||
NSLog(@"🔥----imageUrl:%@",self.nativeAdOffer.nativeAd.imageUrl);
|
||||
|
||||
[[ATImageLoader shareLoader]loadImageWithURL:[NSURL URLWithString:self.nativeAdOffer.nativeAd.logoUrl] completion:^(UIImage *image, NSError *error) {
|
||||
|
||||
if (!error) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.logoImageView setImage:image];
|
||||
});
|
||||
}
|
||||
}];
|
||||
|
||||
|
||||
|
||||
NSLog(@"🔥----logoUrl:%@",self.nativeAdOffer.nativeAd.logoUrl);
|
||||
|
||||
|
||||
|
||||
self.advertiserLabel.text = self.nativeAdOffer.nativeAd.advertiser;
|
||||
|
||||
|
||||
@@ -182,7 +164,8 @@
|
||||
self.textLabel.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
-(void) configureMetrics:(NSDictionary *)metrics {
|
||||
NSDictionary<NSString*, UIView*> *views = @{kNativeAssetTitle:_titleLabel, kNativeAssetText:_textLabel, kNativeAssetCta:_ctaLabel, kNativeAssetRating:_ratingLabel, kNativeAssetAdvertiser:_advertiserLabel, kNativeAssetIcon:_iconImageView, kNativeAssetMainImage:_mainImageView, kNativeAssetSponsorImage:_logoImageView, kNativeAssetDislike:_dislikeButton};
|
||||
|
||||
NSDictionary<NSString*, UIView*> *views = @{kNativeAssetTitle:_titleLabel, kNativeAssetText:_textLabel, kNativeAssetCta:_ctaLabel, kNativeAssetRating:_ratingLabel, kNativeAssetAdvertiser:_advertiserLabel, kNativeAssetIcon:_iconImageView, kNativeAssetMainImage:_mainImageView, 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];
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#import "ATRewardedVideoWrapper.h"
|
||||
#import "ATUnityUtilities.h"
|
||||
#import <AnyThinkRewardedVideo/AnyThinkRewardedVideo.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
|
||||
NSString *const kLoadExtraUserIDKey = @"UserId";
|
||||
NSString *const kLoadExtraMediaExtraKey = @"UserExtraData";
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#import "ATSplashAdWrapper.h"
|
||||
#import "ATUnityUtilities.h"
|
||||
#import <AnyThinkSplash/AnyThinkSplash.h>
|
||||
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||
|
||||
@interface ATSplashAdWrapper () <ATSplashDelegate>
|
||||
|
||||
@@ -69,11 +69,7 @@
|
||||
}
|
||||
NSString *defaultAdSourceConfig = extra[@"default_adSource_config"];
|
||||
NSLog(@"ATSplashAdWrapper::extra = %@", extra);
|
||||
[[ATAdManager sharedManager] loadADWithPlacementID:placementID
|
||||
extra:extra
|
||||
delegate:self
|
||||
containerView:nil
|
||||
defaultAdSourceConfig:defaultAdSourceConfig];
|
||||
[[ATAdManager sharedManager] loadADWithPlacementID:placementID extra:extra delegate:self containerView:nil];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -99,9 +99,7 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
return [NSNumber numberWithBool:[self startSDKWithAppID:firstObject appKey:lastObject]];
|
||||
} else if ([selector isEqualToString:@"subjectToGDPR"]) {
|
||||
return [NSNumber numberWithBool:[self subjectToGDPR]];
|
||||
} else if ([selector isEqualToString:@"presentDataConsentDialog"]) {
|
||||
[self presentDataConsentDialog];
|
||||
} else if ([selector isEqualToString:@"showGDPRConsentDialog:"]) {
|
||||
}else if ([selector isEqualToString:@"showGDPRConsentDialog:"]) {
|
||||
[self showGDPRConsentDialog:callback];
|
||||
} else if ([selector isEqualToString:@"getUserLocation:"]) {
|
||||
[self getUserLocation:callback];
|
||||
@@ -140,17 +138,17 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
} else if ([selector isEqualToString:@"getArea:"]) {
|
||||
[self getArea:callback];
|
||||
} else if ([selector isEqualToString:@"setWXStatus:"]) {
|
||||
[self setWXStatus:firstObject];
|
||||
[self setWXStatus:[NSNumber numberWithDouble:firstObject.boolValue]];
|
||||
} else if ([selector isEqualToString:@"setLocationLongitude:dimension:"]) {
|
||||
[self setLocationLongitude:[NSNumber numberWithDouble:firstObject.doubleValue] dimension:[NSNumber numberWithDouble:lastObject.doubleValue]];
|
||||
} else if ([selector isEqualToString:@"showDebuggerUI"]) {
|
||||
[self showDebuggerUI];
|
||||
}else if ([selector isEqualToString:@"showDebuggerUI:"]) {
|
||||
[self showDebuggerUI:firstObject];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
-(BOOL) startSDKWithAppID:(NSString*)appID appKey:(NSString*)appKey {
|
||||
[[ATAPI sharedInstance]setSystemPlatformType:ATSystemPlatformTypeUnity];
|
||||
[[ATSDKGlobalSetting sharedManager] setSystemPlatformType:ATSystemPlatformTypeUnity];
|
||||
return [[ATAPI sharedInstance] startWithAppID:appID appKey:appKey error:nil];
|
||||
}
|
||||
|
||||
@@ -158,12 +156,6 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
return [@[@"AT", @"BE", @"BG", @"HR", @"CY", @"CZ", @"DK", @"EE", @"FI", @"FR", @"DE", @"GR", @"HU", @"IS", @"IE", @"IT", @"LV", @"LI", @"LT", @"LU", @"MT", @"NL", @"NO", @"PL", @"PT", @"RO", @"SK", @"SI", @"ES", @"SE", @"GB", @"UK"] containsObject:[[CTTelephonyNetworkInfo new].subscriberCellularProvider.isoCountryCode length] > 0 ? [[CTTelephonyNetworkInfo new].subscriberCellularProvider.isoCountryCode uppercaseString] : @""];
|
||||
}
|
||||
|
||||
-(void) presentDataConsentDialog {
|
||||
[[ATAPI sharedInstance] presentDataConsentDialogInViewController:[UIApplication sharedApplication].delegate.window.rootViewController dismissalCallback:^{
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
-(void) showGDPRConsentDialog:(void(*)(const char*))callback {
|
||||
[[ATAPI sharedInstance] showGDPRConsentDialogInViewController:[UIApplication sharedApplication].delegate.window.rootViewController dismissalCallback:^{
|
||||
if (callback != NULL) { callback(@"".UTF8String); }
|
||||
@@ -189,24 +181,24 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
}
|
||||
|
||||
-(void) setChannel:(NSString*)channel {
|
||||
[[ATAPI sharedInstance] setChannel:channel];
|
||||
[[ATSDKGlobalSetting sharedManager] setChannel:channel];
|
||||
}
|
||||
|
||||
-(void) setSubChannel:(NSString*)subChannel {
|
||||
[[ATAPI sharedInstance] setSubchannel:subChannel];
|
||||
[[ATSDKGlobalSetting sharedManager] setSubchannel:subChannel];
|
||||
}
|
||||
|
||||
-(void) setCustomData:(NSString*)customDataStr {
|
||||
if ([customDataStr isKindOfClass:[NSString class]] && [customDataStr length] > 0) {
|
||||
NSDictionary *customData = [NSJSONSerialization JSONObjectWithData:[customDataStr dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
|
||||
[[ATAPI sharedInstance] setCustomData:customData];
|
||||
[[ATSDKGlobalSetting sharedManager] setCustomData:customData];
|
||||
}
|
||||
}
|
||||
|
||||
-(void) setCustomData:(NSString*)customDataStr forPlacementID:(NSString*)placementID {
|
||||
if ([customDataStr isKindOfClass:[NSString class]] && [customDataStr length] > 0) {
|
||||
NSDictionary *customData = [NSJSONSerialization JSONObjectWithData:[customDataStr dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
|
||||
[[ATAPI sharedInstance] setCustomData:customData forPlacementID:placementID];
|
||||
[[ATSDKGlobalSetting sharedManager] setCustomData:customData forPlacementID:placementID];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,7 +211,7 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
}
|
||||
|
||||
-(void) setDataConsent:(NSNumber*)dataConsent {
|
||||
[[ATAPI sharedInstance] setDataConsentSet:[@{@0:@(ATDataConsentSetPersonalized), @1:@(ATDataConsentSetNonpersonalized), @2:@(ATDataConsentSetUnknown)}[dataConsent] integerValue] consentString:nil];
|
||||
[[ATAPI sharedInstance] setDataConsentSet:[@{@0:@(ATDataConsentSetPersonalized), @1:@(ATDataConsentSetNonpersonalized), @2:@(ATDataConsentSetUnknown)}[dataConsent] integerValue] consentString:@{}];
|
||||
}
|
||||
|
||||
-(BOOL) inDataProtectionArea {
|
||||
@@ -230,7 +222,7 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
NSLog(@"ATUnityManager::deniedUploadDeviceInfo = %@", deniedInfo);
|
||||
if (![ATUnityUtilities isEmpty:deniedInfo]) {
|
||||
NSArray *deniedInfoArray = [NSJSONSerialization JSONObjectWithData:[deniedInfo dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
|
||||
[[ATAPI sharedInstance] setDeniedUploadInfoArray:deniedInfoArray];
|
||||
[[ATSDKGlobalSetting sharedManager] setDeniedUploadInfoArray:deniedInfoArray];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,7 +258,7 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
NSLog(@"ATUnityManager::setExcludeBundleIdArray = %@", bundleIds);
|
||||
if (![ATUnityUtilities isEmpty:bundleIds]) {
|
||||
NSArray *bundleIdArray = [NSJSONSerialization JSONObjectWithData:[bundleIds dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
|
||||
[[ATAPI sharedInstance] setExludeAppleIdArray:bundleIdArray];
|
||||
[[ATSDKGlobalSetting sharedManager] setExludeAppleIdArray:bundleIdArray];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,38 +293,60 @@ char * at_get_string_message_for_unity(const char *msg, void(*callback)(const ch
|
||||
}];
|
||||
}
|
||||
|
||||
-(void) setWXStatus:(NSString *)statusStr {
|
||||
NSLog(@"ATUnityManager::setWXStatus=%@",statusStr);
|
||||
[[ATAPI sharedInstance] setWXStatus:[statusStr boolValue]];
|
||||
-(void) setWXStatus:(NSNumber *)flag {
|
||||
NSLog(@"ATUnityManager::setWXStatus=%d",flag.boolValue);
|
||||
[ATSDKGlobalSetting sharedManager].isInstallWX = flag.boolValue;
|
||||
}
|
||||
|
||||
-(void) setLocationLongitude:(NSNumber*)longitude dimension:(NSNumber*)latitude {
|
||||
NSLog(@"ATUnityManager::setLocationLongitude=%@ dimension=%@",longitude,latitude);
|
||||
[[ATAPI sharedInstance] setLocationLongitude:longitude.doubleValue dimension:latitude.doubleValue];
|
||||
[[ATSDKGlobalSetting sharedManager] setLocationLongitude:longitude.doubleValue dimension:latitude.doubleValue];
|
||||
}
|
||||
|
||||
-(void) showDebuggerUI
|
||||
{
|
||||
// 此处用反射方式调用,发布时可以不用导入AnyThinkDebuggerUISDK库
|
||||
NSLog(@"ATUnityManager::showDebuggerUI");
|
||||
|
||||
- (void)showDebuggerUI:(NSString *)debugKey {
|
||||
NSLog(@"ATUnityManager::showDebuggerUI with key: %@", debugKey);
|
||||
NSString *classStr = @"ATDebuggerAPI";
|
||||
Class debuggerAPIClass = NSClassFromString(classStr);
|
||||
if(!debuggerAPIClass) {
|
||||
NSLog(@"ATUnityManager::showDebuggerUI- NO %@",classStr);
|
||||
NSLog(@"ATUnityManager::showDebuggerUI - NO %@", classStr);
|
||||
return;
|
||||
} else {
|
||||
NSObject *debuger = [debuggerAPIClass performSelector:@selector(sharedInstance)];
|
||||
NSString *fuctionStr = @"showDebuggerInViewController:showType:";
|
||||
SEL sel = NSSelectorFromString(fuctionStr);
|
||||
if(!debuger || ![debuger respondsToSelector:sel]) {
|
||||
NSLog(@"ATUnityManager::showDebuggerUI- NO %@",fuctionStr);
|
||||
return;
|
||||
} else {
|
||||
UIWindow *win = [UIApplication sharedApplication].keyWindow;
|
||||
[debuger performSelector:sel withObject:win.rootViewController withObject:@1];
|
||||
}
|
||||
|
||||
SEL sharedInstanceSel = @selector(sharedInstance);
|
||||
if (![debuggerAPIClass respondsToSelector:sharedInstanceSel]) {
|
||||
NSLog(@"ATUnityManager::showDebuggerUI - NO sharedInstance selector");
|
||||
return;
|
||||
}
|
||||
|
||||
// 通过sharedInstanceSel获取单例对象
|
||||
id debugger = [debuggerAPIClass performSelector:sharedInstanceSel];
|
||||
|
||||
NSString *functionStr = @"showDebuggerInViewController:showType:debugkey:";
|
||||
SEL sel = NSSelectorFromString(functionStr);
|
||||
if ([debugger respondsToSelector:sel]) {
|
||||
NSMethodSignature *signature = [debugger methodSignatureForSelector:sel];
|
||||
if (signature) {
|
||||
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
|
||||
[invocation setTarget:debugger];
|
||||
[invocation setSelector:sel];
|
||||
|
||||
// 设置参数
|
||||
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
|
||||
UIViewController *rootViewController = keyWindow.rootViewController;
|
||||
NSNumber *showType = @1; // 假设 showType 为1
|
||||
|
||||
[invocation setArgument:&rootViewController atIndex:2]; // 注意:参数索引从2开始,0和1被target和selector占用
|
||||
[invocation setArgument:&showType atIndex:3];
|
||||
[invocation setArgument:&debugKey atIndex:4];
|
||||
|
||||
// 调用方法
|
||||
[invocation invoke];
|
||||
}
|
||||
} else {
|
||||
NSLog(@"ATUnityManager::showDebuggerUI - NO %@", functionStr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// ATSafeThreadDictionary.h
|
||||
// ATSDK
|
||||
//
|
||||
// Created by topon on 2020/9/21.
|
||||
// Copyright © 2020 AnyThink. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/**
|
||||
A simple implementation of thread safe mutable dictionary.
|
||||
|
||||
@discussion Generally, access performance is lower than NSMutableDictionary,
|
||||
but higher than using @synchronized, NSLock, or pthread_mutex_t.
|
||||
|
||||
@warning Fast enumerate(for...in) and enumerator is not thread safe,
|
||||
use enumerate using block instead. When enumerate or sort with block/callback,
|
||||
do *NOT* send message to the dictionary inside the block/callback.
|
||||
*/
|
||||
@interface ATUnitySafeThreadDictionary<KeyType, ObjectType> : NSMutableDictionary
|
||||
|
||||
@end
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3135f78bef1e464b80a119102c73984
|
||||
guid: 6c22f00d8a049491f9fb73e80d266bd3
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -11,15 +11,10 @@ PluginImporter:
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
@@ -0,0 +1,261 @@
|
||||
// ATSafeThreadDictionary.h
|
||||
// ATSDK
|
||||
//
|
||||
// Created by topon on 2020/9/21.
|
||||
// Copyright © 2020 AnyThink. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ATUnitySafeThreadDictionary.h"
|
||||
#import <pthread.h>
|
||||
|
||||
|
||||
#define INIT(...) self = super.init; \
|
||||
if (!self) return nil; \
|
||||
__VA_ARGS__; \
|
||||
if (!_dic) return nil; \
|
||||
[self __initMutex:&_mutex_lock];\
|
||||
return self;
|
||||
|
||||
|
||||
#define LOCK(...) pthread_mutex_lock(&_mutex_lock); \
|
||||
__VA_ARGS__; \
|
||||
pthread_mutex_unlock(&_mutex_lock);
|
||||
|
||||
@implementation ATUnitySafeThreadDictionary {
|
||||
NSMutableDictionary *_dic; //Subclass a class cluster...
|
||||
pthread_mutex_t _mutex_lock;
|
||||
pthread_mutexattr_t _attr;
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - init
|
||||
|
||||
- (void)__initMutex:(pthread_mutex_t *)mutex {
|
||||
// 递归锁:允许同一个线程对一把锁进行重复加锁
|
||||
// 初始化属性
|
||||
pthread_mutexattr_init(&_attr);
|
||||
pthread_mutexattr_settype(&_attr, PTHREAD_MUTEX_RECURSIVE);
|
||||
// 初始化锁
|
||||
pthread_mutex_init(mutex, &_attr);
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
|
||||
INIT(_dic = [[NSMutableDictionary alloc] init]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys {
|
||||
INIT(_dic = [[NSMutableDictionary alloc] initWithObjects:objects forKeys:keys]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithCapacity:(NSUInteger)capacity {
|
||||
INIT(_dic = [[NSMutableDictionary alloc] initWithCapacity:capacity]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithObjects:(const id[])objects forKeys:(const id <NSCopying>[])keys count:(NSUInteger)cnt {
|
||||
INIT(_dic = [[NSMutableDictionary alloc] initWithObjects:objects forKeys:keys count:cnt]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary {
|
||||
INIT(_dic = [[NSMutableDictionary alloc] initWithDictionary:otherDictionary]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary copyItems:(BOOL)flag {
|
||||
INIT(_dic = [[NSMutableDictionary alloc] initWithDictionary:otherDictionary copyItems:flag]);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - method
|
||||
|
||||
- (NSUInteger)count {
|
||||
LOCK(NSUInteger c = _dic.count); return c;
|
||||
}
|
||||
|
||||
- (id)objectForKey:(id)aKey {
|
||||
LOCK(id o = [_dic objectForKey:aKey]); return o;
|
||||
}
|
||||
|
||||
- (NSEnumerator *)keyEnumerator {
|
||||
LOCK(NSEnumerator * e = [_dic keyEnumerator]); return e;
|
||||
}
|
||||
|
||||
- (NSArray *)allKeys {
|
||||
LOCK(NSArray * a = [_dic allKeys]); return a;
|
||||
}
|
||||
|
||||
- (NSArray *)allKeysForObject:(id)anObject {
|
||||
LOCK(NSArray * a = [_dic allKeysForObject:anObject]); return a;
|
||||
}
|
||||
|
||||
- (NSArray *)allValues {
|
||||
LOCK(NSArray * a = [_dic allValues]); return a;
|
||||
}
|
||||
|
||||
- (NSString *)description {
|
||||
LOCK(NSString * d = [_dic description]); return d;
|
||||
}
|
||||
|
||||
- (NSString *)descriptionInStringsFileFormat {
|
||||
LOCK(NSString * d = [_dic descriptionInStringsFileFormat]); return d;
|
||||
}
|
||||
|
||||
- (NSString *)descriptionWithLocale:(id)locale {
|
||||
LOCK(NSString * d = [_dic descriptionWithLocale:locale]); return d;
|
||||
}
|
||||
|
||||
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level {
|
||||
LOCK(NSString * d = [_dic descriptionWithLocale:locale indent:level]); return d;
|
||||
}
|
||||
|
||||
- (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary {
|
||||
if (otherDictionary == self) return YES;
|
||||
|
||||
if ([otherDictionary isKindOfClass:ATUnitySafeThreadDictionary.class]) {
|
||||
ATUnitySafeThreadDictionary *other = (id)otherDictionary;
|
||||
BOOL isEqual;
|
||||
pthread_mutex_lock(&_mutex_lock);
|
||||
pthread_mutex_lock(&(other->_mutex_lock));
|
||||
isEqual = [_dic isEqual:other->_dic];
|
||||
pthread_mutex_unlock(&_mutex_lock);
|
||||
pthread_mutex_unlock(&(other->_mutex_lock));
|
||||
return isEqual;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSEnumerator *)objectEnumerator {
|
||||
LOCK(NSEnumerator * e = [_dic objectEnumerator]); return e;
|
||||
}
|
||||
|
||||
- (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)marker {
|
||||
LOCK(NSArray * a = [_dic objectsForKeys:keys notFoundMarker:marker]); return a;
|
||||
}
|
||||
|
||||
- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator {
|
||||
LOCK(NSArray * a = [_dic keysSortedByValueUsingSelector:comparator]); return a;
|
||||
}
|
||||
|
||||
- (void)getObjects:(id __unsafe_unretained[])objects andKeys:(id __unsafe_unretained[])keys {
|
||||
LOCK([_dic getObjects:objects andKeys:keys]);
|
||||
}
|
||||
|
||||
- (id)objectForKeyedSubscript:(id)key {
|
||||
LOCK(id o = [_dic objectForKeyedSubscript:key]); return o;
|
||||
}
|
||||
|
||||
- (void)enumerateKeysAndObjectsUsingBlock:(__attribute__((noescape)) void (^)(id key, id obj, BOOL *stop))block {
|
||||
LOCK([_dic enumerateKeysAndObjectsUsingBlock:block]);
|
||||
}
|
||||
|
||||
- (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(__attribute__((noescape)) void (^)(id key, id obj, BOOL *stop))block {
|
||||
LOCK([_dic enumerateKeysAndObjectsWithOptions:opts usingBlock:block]);
|
||||
}
|
||||
|
||||
- (NSArray *)keysSortedByValueUsingComparator:(__attribute__((noescape)) NSComparator)cmptr {
|
||||
LOCK(NSArray * a = [_dic keysSortedByValueUsingComparator:cmptr]); return a;
|
||||
}
|
||||
|
||||
- (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(__attribute__((noescape)) NSComparator)cmptr {
|
||||
LOCK(NSArray * a = [_dic keysSortedByValueWithOptions:opts usingComparator:cmptr]); return a;
|
||||
}
|
||||
|
||||
- (NSSet *)keysOfEntriesPassingTest:(__attribute__((noescape)) BOOL (^)(id key, id obj, BOOL *stop))predicate {
|
||||
LOCK(NSSet * a = [_dic keysOfEntriesPassingTest:predicate]); return a;
|
||||
}
|
||||
|
||||
- (NSSet *)keysOfEntriesWithOptions:(NSEnumerationOptions)opts passingTest:(__attribute__((noescape)) BOOL (^)(id key, id obj, BOOL *stop))predicate {
|
||||
LOCK(NSSet * a = [_dic keysOfEntriesWithOptions:opts passingTest:predicate]); return a;
|
||||
}
|
||||
|
||||
#pragma mark - mutable
|
||||
|
||||
- (void)removeObjectForKey:(id)aKey {
|
||||
LOCK(
|
||||
if (aKey) {
|
||||
[_dic removeObjectForKey:aKey];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setObject:(id)anObject forKey:(id <NSCopying> )aKey {
|
||||
LOCK(
|
||||
if (anObject && aKey) {
|
||||
[_dic setObject:anObject forKey:aKey];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary {
|
||||
LOCK(
|
||||
if (otherDictionary) {
|
||||
[_dic addEntriesFromDictionary:otherDictionary];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)removeAllObjects {
|
||||
LOCK([_dic removeAllObjects]);
|
||||
}
|
||||
|
||||
- (void)removeObjectsForKeys:(NSArray *)keyArray {
|
||||
LOCK([_dic removeObjectsForKeys:keyArray]);
|
||||
}
|
||||
|
||||
- (void)setDictionary:(NSDictionary *)otherDictionary {
|
||||
LOCK(
|
||||
if (otherDictionary) {
|
||||
[_dic setDictionary:otherDictionary];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying> )key {
|
||||
LOCK(
|
||||
if (obj && key) {
|
||||
[_dic setObject:obj forKeyedSubscript:key];
|
||||
});
|
||||
}
|
||||
|
||||
#pragma mark - protocol
|
||||
|
||||
- (id)copyWithZone:(NSZone *)zone {
|
||||
return [self mutableCopyWithZone:zone];
|
||||
}
|
||||
|
||||
- (id)mutableCopyWithZone:(NSZone *)zone {
|
||||
LOCK(id copiedDictionary = [[self.class allocWithZone:zone] initWithDictionary:_dic]);
|
||||
return copiedDictionary;
|
||||
}
|
||||
|
||||
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state
|
||||
objects:(id __unsafe_unretained[])stackbuf
|
||||
count:(NSUInteger)len {
|
||||
LOCK(NSUInteger count = [_dic countByEnumeratingWithState:state objects:stackbuf count:len]);
|
||||
return count;
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)object {
|
||||
if (object == self) return YES;
|
||||
|
||||
if ([object isKindOfClass:ATUnitySafeThreadDictionary.class]) {
|
||||
ATUnitySafeThreadDictionary *other = object;
|
||||
BOOL isEqual;
|
||||
pthread_mutex_lock(&_mutex_lock);
|
||||
pthread_mutex_lock(&(other->_mutex_lock));
|
||||
isEqual = [_dic isEqual:other->_dic];
|
||||
pthread_mutex_unlock(&_mutex_lock);
|
||||
pthread_mutex_unlock(&(other->_mutex_lock));
|
||||
|
||||
return isEqual;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash {
|
||||
LOCK(NSUInteger hash = [_dic hash]);
|
||||
return hash;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
pthread_mutex_destroy(&_mutex_lock);
|
||||
pthread_mutexattr_destroy(&_attr);
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da98890a900e14accaef685984a61bd5
|
||||
guid: 2b8623ca670c641eb9ef81563fb8e2ec
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -11,11 +11,6 @@ PluginImporter:
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
@@ -27,6 +22,16 @@ PluginImporter:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
tvOS: tvOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -23,6 +23,16 @@ NSString *const kATUnityCheckLoadModelAdInfoKey = @"adInfo";
|
||||
@end
|
||||
@implementation NSDictionary (KAKit)
|
||||
-(NSString*) jsonString {
|
||||
|
||||
@try {
|
||||
// can not serialization, return a value is null array string
|
||||
if (![NSJSONSerialization isValidJSONObject:self]) {
|
||||
return @"[]";
|
||||
}
|
||||
} @catch (NSException *exception) {
|
||||
return @"[]";
|
||||
} @finally {}
|
||||
|
||||
NSError *error;
|
||||
NSData *jsonData;
|
||||
@try {
|
||||
|
||||
@@ -121,10 +121,10 @@ public class ATManager {
|
||||
ATUnityCBridge.SendMessageToC("ATUnityManager", "setLocationLongitude:dimension:", new object[] {longitude, latitude});
|
||||
}
|
||||
|
||||
public static void showDebuggerUI()
|
||||
public static void showDebuggerUI(string debugKey)
|
||||
{
|
||||
Debug.Log("Unity:ATManager::showDebuggerUI()");
|
||||
ATUnityCBridge.SendMessageToC("ATUnityManager", "showDebuggerUI", null);
|
||||
ATUnityCBridge.SendMessageToC("ATUnityManager", "showDebuggerUI:", new object[] {debugKey});
|
||||
}
|
||||
|
||||
public static void showGDPRConsentDialog(Func<string, int> callback)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1488d178aaa4f482ea8c309372694069
|
||||
guid: 3ebf1cad649364554b542bffc52eafd8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<repositories>
|
||||
<repository>https://jfrog.takuad.com/artifactory/china_sdk</repository>
|
||||
</repositories>
|
||||
<androidPackage spec="com.anythink.sdk:core-taku:6.5.52"/>
|
||||
<androidPackage spec="com.android.support:appcompat-v7:28.0.0"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 74cd7d129c09b466a86bfa11ed6b16d1
|
||||
guid: 7a73f31a7fa33468dbe302869e291198
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51a89bd698bd46358af7ea78f5245d04
|
||||
timeCreated: 1693816810
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aed17cf9003947689bdd0e379dc9c087
|
||||
timeCreated: 1693815837
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 254398fdf021c4a779725a49d41f0e61
|
||||
guid: 85ef0e74147a04f4d91ac86c27edd8b3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0054580ab849d45198549eac7a372bc9
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41fd5ba357e7340aebe1ca236589f66a
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f0b382f66e3504619885af1ed69ee1c1
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7311500925e7344788fb99a2ef9e2e96
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 950e2794885244e8798ebc0ed47f8874
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c72490b4c19e04d59a5e5e27879e699f
|
||||
guid: 56d92f8a16dba429ba7275e8efdcd8af
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1908b40a4f31848efb84232ead290fca
|
||||
guid: e9587ea14cae241c59427df38278d1f6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,6 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-sdm:6.5.54.1.0"/>
|
||||
<androidPackage spec="com.smartdigimkttech.sdk:sdm-sdk-cn:6.5.54"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: daf8b225bea19489bb7a89ca105900f9
|
||||
guid: 5573b9293433f436986248b60de1b145
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31b5cf97768a140e298ddc29fc51435b
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1b6816ce3172d04c881b3aed105923b
|
||||
guid: 5f363c1a88f18174987f8d657f0a367d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 86c7ce492ac2f1f40ba39a585d683a73
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5feb6ef12c786cd40a262c2aba17ef13
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 668ce08287b77354d9d17d91dc8e7399
|
||||
guid: 1f9463e4eab324a528e5920eeb986e7f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76dff0eaddf7c9e4db54ac483d4bd10c
|
||||
guid: 2baed5d8ff56e44eda5212811ea487fb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,6 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-baidu:9.432.1.0"/>
|
||||
<androidPackage spec="mobi.baidu.sdk:mobads:9.432"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20eb733c583b24e61aa380a5b4b8049f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"baidu","version":"9.432","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/baidu"}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 877de551d865024459220025e667a8bd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76e1496423e6d4d039d9f0d051cc195d
|
||||
guid: 015c2d452459b449f92c9793c98a8fd5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dbf64e3acd7e84b67aff6edfdfabb2d4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,11 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<repositories>
|
||||
<repository>https://artifact.bytedance.com/repository/pangle</repository>
|
||||
</repositories>
|
||||
|
||||
<androidPackage spec="com.pangle.cn:mediation-sdk:5.9.2.8"/>
|
||||
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-csj:7.3.0.8.1.1"/>
|
||||
<androidPackage spec="com.pangle.cn:ads-sdk-pro:7.3.0.8"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
</dependencies>
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff585799e2d0c42b5b227471c17279a3
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"csj","version":"7.3.0.8","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/csj"}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce7b55d484bbcfe458c0855637c86538
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 965a603742b554c449c14c9323811037
|
||||
guid: cf5141130ed5b45d2b219e231ef457c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 122e70b479a7447688a289ae19fcfcad
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,6 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-gdt:4.671.1541.1.0"/>
|
||||
<androidPackage spec="com.qq.e.union:union:4.671.1541"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6dd6600836ea34a7ebade28a361d0d09
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 461ee595b165344e1902e1be3a8a7e6a
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd689cb07089a4ad58f9ea68d471251f
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c58e18614454a415d8e2ad27964c04bf
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1 +1 @@
|
||||
{"name":"gdt","version":"4.575.1445","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/gdt"}
|
||||
{"name":"gdt","version":"4.671.1541","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/gdt"}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c230e8420af7ab4fa09409a9d1ef6cf
|
||||
guid: e7884cb6f1807d24ba5d55cd4ca1d3e5
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b0f7e15dfa0964efeb4fb2520fe4da8a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 24a14d7b4cbcc4136807dd7531b8e9af
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<repositories>
|
||||
<repository>https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_support</repository>
|
||||
</repositories>
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-mintegral-china:16.3.67.1.0"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:reward:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:newinterstitial:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:mbnative:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:mbnativeadvanced:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:mbsplash:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:mbbanner:16.3.67"/>
|
||||
<androidPackage spec="com.mbridge.msdk.support:mbbid:16.3.67"/>
|
||||
<androidPackage spec="androidx.recyclerview:recyclerview:1.1.0"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 220064c9d0f91415b86ab3bf1a729ac8
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"gtm","version":"16.3.67","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/gtm"}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf13b1b13509b0d4081a9181302a3c9c
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b0d5b178b07f1469cbe2d743ca7cb28e
|
||||
guid: d7ea1f2761a954d17bf9bbd0cfd41eeb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eafa9aeae4bd64d97a054da55a05d0dc
|
||||
guid: 01632421e4bf2409d9f7c72ec852745d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<dependencies>
|
||||
<androidPackages>
|
||||
<androidPackage spec="com.anythink.sdk:adapter-taku-kuaishou:4.12.20.1.1.0"/>
|
||||
<androidPackage spec="com.anythink.sdk:sdk-ads-kuaishou:4.12.20.1"/>
|
||||
<androidPackage spec="com.android.support:design:28.0.0"/>
|
||||
</androidPackages>
|
||||
</dependencies>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7addf8b7f1033463d9a2909737833d5c
|
||||
guid: d00a7a231f8d8489a95ad98ad2bf8eb5
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b56a274238fee48dcaa1ccae9a622dd7
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43adb02535ce84058bace9a4bf525ee6
|
||||
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:
|
||||
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0e07b66260fa418884f4cc8e5a63bc5
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1 +1 @@
|
||||
{"name":"kuaishou","version":"3.3.63","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/kuaishou"}
|
||||
{"name":"kuaishou","version":"4.12.20.1","country":1,"path":"Assets/AnyThinkPlugin/AnyThinkAds\\Plugins/Android/China/mediation/kuaishou"}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac5dc9887409a4e4584a417d1e4a0d88
|
||||
guid: 10e7c7db796873948b48a37546d590f7
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user