diff --git a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate index f6bc499..9437b98 100644 Binary files a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate and b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..0a41708 --- /dev/null +++ b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/HDwallpaper/AppDelegate.m b/HDwallpaper/AppDelegate.m index 8da4dd2..a171cad 100644 --- a/HDwallpaper/AppDelegate.m +++ b/HDwallpaper/AppDelegate.m @@ -14,6 +14,8 @@ #import #import #import + +#import "LuxADManager.h" @interface AppDelegate () @property (nonatomic,strong) NSTimer *attTimer; @end @@ -74,34 +76,93 @@ shopworn_4 *= aqueduct_d; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { -NSDateFormatter *unfasten_4 = [NSDateFormatter new]; -[unfasten_4 setDateFormat:@"yyyy-MM-dd HH:mm"]; -NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]]; -[[NSUserDefaults standardUserDefaults] setObject:noble_W forKey:@"shack_k"]; + NSDateFormatter *unfasten_4 = [NSDateFormatter new]; + [unfasten_4 setDateFormat:@"yyyy-MM-dd HH:mm"]; + NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]]; + [[NSUserDefaults standardUserDefaults] setObject:noble_W forKey:@"shack_k"]; - [FIRApp configure]; - - -// [AWM_NetManager requestRemoteIp]; -// -// [[AWM_WallPapaerADManager shareInstance] configureAD]; -// - - [self checkATT]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor whiteColor]; -// [AWM_NetManager uploadAD_Start]; + UIViewController *vc = [UIViewController new]; + self.window.rootViewController = vc; [self.window makeKeyAndVisible]; -// [[AWM_WallPapaerADManager shareInstance] showFirstOpenAD:^(NSInteger actionType) { - [self configureRootVC]; -// } window:self.window]; - - + [FIRApp configure]; + [self checkATT]; + NSLog(@">>>>>>>>>HDWall......."); + [self configureADByFirebase]; return YES; + + + +} + +- (void)configureADByFirebase { + if ([[LuxADManager shareInstance] isADSSMode] ) { + [self configureAD]; + } + else {//读取firebase数据 + FIRRemoteConfig *rc = [FIRRemoteConfig remoteConfig]; + FIRRemoteConfigSettings *rcs = [FIRRemoteConfigSettings new]; + rcs.minimumFetchInterval = 0; + rc.configSettings = rcs; + [rc fetchAndActivateWithCompletionHandler:^(FIRRemoteConfigFetchAndActivateStatus status, NSError * _Nullable error) { + dispatch_async(dispatch_get_main_queue(), ^{ + if (status == FIRRemoteConfigFetchAndActivateStatusSuccessFetchedFromRemote) { + NSString *localVer = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"]; + NSDictionary *value = [[rc configValueForKey:@"isopen"] JSONValue]; + BOOL isadopen = [value[@"isadopen"] boolValue]; + NSString *version = value[@"version"]; + if (!isadopen || ( version && [version isEqualToString:localVer])) {//不展示ad + [self configureRootVC]; + } + else { + [self configureAD]; + } + } + else { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self configureADByFirebase]; + }); + } + }); + + }]; + } +} + +- (void)configureAD { + + + [[LuxADManager shareInstance] addADWithInterstitialId:@"748bee67bbad21b9" actionBlock:^(UIViewController * _Nonnull vc) { + + }];//第一个一定为开屏插页 + + [[LuxADManager shareInstance] addADWithInterstitialId:@"e5837c56c18ee712" actionBlock:^(UIViewController * _Nonnull vc) { + LuxADSuperVC *subvc = [LuxADSuperVC new]; + subvc.adIndex = 1; + [vc.navigationController pushViewController:subvc animated:NO]; + }]; + + [[LuxADManager shareInstance] addADWithInterstitialId:@"edf0554479388c05" actionBlock:^(UIViewController * _Nonnull vc) { + LuxADSuperVC *subvc = [LuxADSuperVC new]; + subvc.adIndex = 2; + [vc.navigationController pushViewController:subvc animated:NO]; + }]; + + [[LuxADManager shareInstance] addADWithInterstitialId:@"5a3cff8307e36497" actionBlock:^(UIViewController * _Nonnull vc) { + LuxADSuperVC *subvc = [LuxADSuperVC new]; + subvc.adIndex = 3; + [vc.navigationController pushViewController:subvc animated:NO]; + }]; + + [[LuxADManager shareInstance] configureADWithAppLovinSDKKey:@"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX"]; + [[LuxADManager shareInstance] showFirstOpenAD:^(NSInteger actionType) { + [self configureRootVC]; + } window:self.window bgImgName:@"ssa" bgColor:nil]; + + } - (void)configureRootVC { @@ -145,7 +206,7 @@ transmit_M *= alkali_F; tb.viewControllers = @[wpHomeNV,wpHotNV,wpEditNV,wpMyNV]; tb.selectedIndex = 0; self.window.rootViewController = tb; - + [self.window makeKeyAndVisible]; } @@ -157,7 +218,7 @@ NSString *innuendo_6 = [milkman_k stringFromDate:[NSDate date]]; [[NSUserDefaults standardUserDefaults] setObject:innuendo_6 forKey:@"moderation_T"]; - [[AWM_WallPapaerADManager shareInstance] showOpenAD]; + [[LuxADManager shareInstance] showOpenAD]; } diff --git a/HDwallpaper/LuxADManager/LuxADManager.h b/HDwallpaper/LuxADManager/LuxADManager.h new file mode 100644 index 0000000..f8f2724 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADManager.h @@ -0,0 +1,67 @@ +// +// WPLuxADManager.h +// TallPaper +// +// Created by aaa on 2024/7/25. +// + +#import +#import +#import "LuxADSuperVC.h" +NS_ASSUME_NONNULL_BEGIN + +typedef void(^LuxADManagerCallback)(NSInteger actionType);//actionType,1表示关闭广告 +typedef void (^LuxADManagerActionBlock)(UIViewController *vc);//用于补量模式的跳转vc 的action + +#pragma mark ------LuxADManagerItem +@interface LuxADManagerInterstitialItem : NSObject +@property (nonatomic,strong) MAInterstitialAd *adItem; +@property (nonatomic) NSInteger retryAttemptCount; +@property (nonatomic,strong) NSDate *lastShowADDate;//ad间隔时长 +@property (nonatomic,strong) NSString *adId; + +@property (nonatomic,weak) LuxADManagerActionBlock actionBlock;//在补量模式下,跳转至目的页面 + ++ (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock; +@end + +#pragma mark ------LuxADManager + + +@interface LuxADManager : NSObject ++ (instancetype)shareInstance; + +//第一步: 通过指定的ids数组初始化所有 插屏 ad ,注意,仅是插屏 +- (void)addADWithInterstitialId:(NSString*)id actionBlock:(LuxADManagerActionBlock)block; + +//第二步: 初始化广告 +- (void)configureADWithAppLovinSDKKey:(NSString *)appLovinSDKKey; + +//用于在启动app时,即第一次在appDidFinishLanuch调用开屏广告 +- (void)showFirstOpenAD:(LuxADManagerCallback)callback window:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor; + +//用于在app进行前后台切换时调用 +- (void)showOpenAD; + + + +//随机展示_adItemsArr中的插屏ad +- (void)showADByRandomModeWithCallback:(LuxADManagerCallback)callback; + + + + + +#pragma mark --------主要用于AD补量 +//返回所有的插屏ad(非开屏广告openad) +- (NSArray *)allInterstitialAds; + +//根据指定的在_adItemsArr中的index展示插屏ad +- (void)showADWithIndex:(NSInteger)index callback:(LuxADManagerCallback)callback ; + +//判断当前是否为广告不量模式 +- (BOOL)isADSSMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/HDwallpaper/LuxADManager/LuxADManager.m b/HDwallpaper/LuxADManager/LuxADManager.m new file mode 100644 index 0000000..524e4a5 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADManager.m @@ -0,0 +1,427 @@ +// +// LuxADManager.m +// TallPaper +// +// Created by aaa on 2024/7/25. +// + +#import "LuxADManager.h" +#import "LuxNetManager.h" +#import "LuxADSSModeVC.h" +#import "AppDelegate.h" +#define kOpenAdCTimeLength 15.0//最多等待开屏广告加载时常 +#define kOpenADPerSec 0.05 + +#define kADShowTimePer 30.0 //每个广告的间隔时长 + +#pragma mark ------LuxADManagerInterstitialItem +@implementation LuxADManagerInterstitialItem ++ (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock{ + LuxADManagerInterstitialItem *item = [[LuxADManagerInterstitialItem alloc] initWithAdId:adId adDelegate:adDelegate actionBlock:actionBlock]; + return item; +} + +- (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock{ + self = [super init]; + if (self) { + _retryAttemptCount = 0; + _adItem = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: adId]; + _adItem.delegate = adDelegate; + self.actionBlock = actionBlock; + } + return self; +} + +@end + + + +#pragma mark ------LuxADManager +@interface LuxADManager () + +@property (nonatomic,strong) ALSdkInitializationConfiguration *adConfig; +@property (nonatomic,strong) NSMutableArray *adItemsArr; +@property (nonatomic,copy) LuxADManagerCallback callback; + +@property (nonatomic,strong) NSTimer *openADTimer; //开屏加载的倒计时timer +@property (nonatomic,strong) UIProgressView *processView; //开屏加载的进度条 +@end + + + + +@implementation LuxADManager ++ (instancetype)shareInstance { + static LuxADManager * instance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [LuxADManager new]; + }); + return instance; +} + +- (id)init { + self = [super init]; + if (self) { + _adItemsArr = [NSMutableArray new]; + } + return self; +} + +//初始化广告 +- (void)configureADWithAppLovinSDKKey:(NSString *)appLovinSDKKey{ + //直接在此处把远程ip获取到 + [LuxNetManager requestRemoteIp]; + + //配置ad + _adConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: appLovinSDKKey builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) { + builder.mediationProvider = ALMediationProviderMAX; +// NSString *currentIDFV = UIDevice.currentDevice.identifierForVendor.UUIDString; +// if ( currentIDFV.length > 0 ) +// { +// builder.testDeviceAdvertisingIdentifiers = @[currentIDFV]; +// } + }]; + + __weak typeof(self)weakSelf = self; + [[ALSdk shared] initializeWithConfiguration: _adConfig completionHandler:^(ALSdkConfiguration *sdkConfig) { + if ([weakSelf isADSSMode]) {//如果为补量模式,直接加载剩下的插页广告 + [[LuxADManager shareInstance] initOtherInitIntersitialAD]; + [[LuxADManager shareInstance]showSSModeControlVC]; + } + else { + [[LuxADManager shareInstance] initOpenAD]; + //延时初始化其他ad,避免同时初始化导致网络带宽拥挤 + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [[LuxADManager shareInstance] initOtherInitIntersitialAD]; + }); + } + }]; + + [LuxNetManager uploadAD_Start]; +} + +//顶层window显示SS模式下的控制 VC +- (void)showSSModeControlVC { + UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; + LuxADSSModeVC *vc = [LuxADSSModeVC new]; + UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; + keyWindow.rootViewController = nav; +} + +//通过指定的ids数组初始化所有ad +- (void)addADWithInterstitialId:(NSString*)adId actionBlock:(LuxADManagerActionBlock)block{ + LuxADManagerInterstitialItem *item = [LuxADManagerInterstitialItem initWithAdId:adId adDelegate:self actionBlock:block]; + [_adItemsArr addObject:item]; +} + +//初始化开屏广告,注意,我们默认把广告数组中的第一个添加的插页ad当作开屏广告 +- (void)initOpenAD{ + [[self openAd].adItem loadAd]; +} + +- (LuxADManagerInterstitialItem *)openAd { + return _adItemsArr.firstObject; +} + +//初始化余下的插屏广告 +- (void)initOtherInitIntersitialAD { + for (int i = 1; i < _adItemsArr.count; i ++) { + [_adItemsArr[i].adItem loadAd]; + } +} + +//返回所有的插屏ad(非开屏广告openad) +- (NSArray *)allInterstitialAds { + if (_adItemsArr.count) {//第一个默认为开屏广告 + return [_adItemsArr subarrayWithRange:NSMakeRange(1, _adItemsArr.count - 1)]; + } + return nil; +} + +#pragma mark -----主要是 配置开屏广告 的地方 +//用于在启动app时,即第一次在appDidFinishLanuch调用开屏广告 +- (void)showFirstOpenAD:(LuxADManagerCallback)callback window:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor{ + if ([self isADSSMode]) {//补量模式,直接返回,不加载开屏 + callback(1); + return; + } + + self.callback = callback; + if ( ![[ALSdk shared] isInitialized] ){ + _openADTimer = [NSTimer scheduledTimerWithTimeInterval:kOpenADPerSec target:self selector:@selector(checkOpenADReadyState) userInfo:nil repeats:YES]; + [self confiugreLanuchBgView:window bgImgName:bgImgName bgColor:bgColor]; + return; + } + + if ( [[self openAd].adItem isReady] ){ + + [[self openAd].adItem showAd]; + } + else{ + _openADTimer = [NSTimer scheduledTimerWithTimeInterval:kOpenADPerSec target:self selector:@selector(checkOpenADReadyState) userInfo:nil repeats:YES]; + [self confiugreLanuchBgView:window bgImgName:bgImgName bgColor:bgColor]; + [[self openAd].adItem loadAd]; + } +} + +//用于在app进行前后台切换时调用 +- (void)showOpenAD { + if ([self isADSSMode]) {//补量模式,直接返回,不加载开屏 + return; + } + + if(![self canShowAD:[self openAd].lastShowADDate ]) { + return; + } + + if ( ![[ALSdk shared] isInitialized] ){ + return; + } + + if ( [[self openAd].adItem isReady] ){ + [[self openAd].adItem showAd]; + } + else{ + [[self openAd].adItem loadAd]; + } +} + +//检查openad的状态,如果可用则展示,并停止timer倒计时. 如果不可用且超时,则停止timer并回调;如果不可用并未超时,则更新进度条 +- (void)checkOpenADReadyState{ + static CGFloat totalTimeC = 0.0; + totalTimeC += kOpenADPerSec; + + if ( [[self openAd].adItem isReady] ){ + [_openADTimer invalidate]; + _openADTimer = nil; + [[self openAd].adItem showAd]; + } + else { + if (totalTimeC > kOpenAdCTimeLength) {//超时 + if(self.callback) { + self.callback(1); + } + [_openADTimer invalidate]; + _openADTimer = nil; + } + else { + CGFloat v = totalTimeC / kOpenAdCTimeLength; + _processView.progress = v; + } + } +} + + +//开屏广告,更新进度条的视图 +- ( void)confiugreLanuchBgView:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor{ + UIViewController *vc = [UIViewController new]; + window.rootViewController = vc; + + UIImageView *imgView = [UIImageView new]; + imgView.frame = CGRectMake((window.frame.size.width - 80) * 0.5, (window.frame.size.height - 80) * 0.5,80,80); + imgView.layer.masksToBounds = YES; + imgView.layer.cornerRadius = 40; + [window addSubview:imgView]; + imgView.image = [UIImage imageNamed:bgImgName]; + imgView.contentMode = UIViewContentModeScaleAspectFit; + if (bgColor) { + imgView.backgroundColor = bgColor; + } + else { + imgView.backgroundColor = [UIColor colorWithRed:197.0/255.0 green:197.0/255.0 blue:197.0/255.0 alpha:1]; + } + + _processView = [UIProgressView new]; + _processView.frame = CGRectMake(80-1,window.frame.size.height - 60-1,window.frame.size.width - 160-1,20-1); + _processView.tintColor = [UIColor systemPinkColor]; + [vc.view addSubview:_processView]; + + [vc.view addSubview:imgView]; + vc.view.backgroundColor = imgView.backgroundColor; +} + +#pragma mark -----展示其他插页广告 +//根据指定的在_adItemsArr中的index展示ad +- (void)showADWithIndex:(NSInteger)index callback:(LuxADManagerCallback)callback { + self.callback = callback; + if (index < _adItemsArr.count) { + LuxADManagerInterstitialItem *item = [_adItemsArr objectAtIndex:index]; + if (![self canShowAD:item.lastShowADDate] || ![item.adItem isReady]) { //如果未满足30秒的展示时间或没有准备好展示,则返回 + self.callback(1); + } + else { //展示 + [item.adItem showAd]; + } + + } + else { + NSLog(@"超出所初始化的广告数量边界...."); + } +} + +//随机展示_adItemsArr中的插屏ad +- (void)showADByRandomModeWithCallback:(LuxADManagerCallback)callback { + if (_adItemsArr.count) { + int rv = arc4random() % _adItemsArr.count; + LuxADManagerInterstitialItem *item = _adItemsArr[rv]; + + if (![self canShowAD:item.lastShowADDate] || ![item.adItem isReady]) { //如果未满足30秒的展示时间或没有准备好展示,则返回 + self.callback(1); + } + else { //展示 + [item.adItem showAd]; + } + } + else { + callback(1); + } + +} + + + +#pragma mark ----所有广告的通用处理 +//能否展示广告 +- (BOOL)canShowAD:(NSDate *)adDate { + if(!adDate) { + return YES; + } + else { + NSDate *ndate = [NSDate date]; + if ([ndate timeIntervalSinceDate:adDate] >= kADShowTimePer) { + return YES; + } + else { + return NO; + } + } +} + + + + +//在收到ad 代理回调时,如果需要重新loadAD则调用此方法 +- (void)loadAD:(MAAd *)ad{ + LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier]; + if (item) { + [item.adItem loadAd]; + NSLog(@"已经重新加载loadAD:%@",ad.adUnitIdentifier); + } +} + +//根据指定maad返回LuxADManagerInterstitialItem对象 +- (LuxADManagerInterstitialItem *)getLuxADInterstitialItemWith:(NSString *)adUnitIdentifier { + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.adItem.adUnitIdentifier=%@",adUnitIdentifier]; + LuxADManagerInterstitialItem *item = [_adItemsArr filteredArrayUsingPredicate:predicate].firstObject; + return item; +} + +//重置所有ad中的重试次数 +- (void)resetRetryAttemptCount:(MAAd *)ad { + LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier]; + item.retryAttemptCount = 0; +} + + +- (void)storeADInfoAnUploadWith:(MAAd *)ad { + [[NSUserDefaults standardUserDefaults] setObject:ALSdk.shared.configuration.countryCode forKey:@"countryCode"]; + NSTimeInterval interval = ad.requestLatency; + NSNumber *intervalNumber = [NSNumber numberWithDouble:interval]; + [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"]; + + [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"]; + + double revenue = ad.revenue; + NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue]; + [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"]; + + [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"]; + + [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"]; + [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"]; + + NSLog(@"-----%@",ad.adUnitIdentifier); + NSLog(@"self.openAD.adUnitIdentifier-----%@",[self openAd].adItem.adUnitIdentifier); + + +} + + +//判断当前是否为广告不量模式 +- (BOOL)isADSSMode{ + return NO; +} + + +#pragma mark - MAAdDelegate 广告的代理 + +- (void)didLoadAd:(MAAd *)ad { + NSLog(@"ad didLoadAD....."); + [self resetRetryAttemptCount:ad]; + [self storeADInfoAnUploadWith:ad]; + [LuxNetManager uploadAD_Load]; +} + +- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error { + NSLog(@"加载广告失败.... :%@ err:%@",adUnitIdentifier,error); + LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:adUnitIdentifier]; + item.retryAttemptCount++; + NSInteger delaySec = pow(2, MIN(6, item.retryAttemptCount)); + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ + [item.adItem loadAd]; + }); +} + + + + +- (void)didDisplayAd:(MAAd *)ad { + NSLog(@"成功展示了ad...."); + [self storeADInfoAnUploadWith:ad]; + + LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier]; + if (item == [self openAd]) {//判定为开屏广告 + [LuxNetManager uploadAD_Start]; + } + else {//其他插页广告 + [LuxNetManager uploadAD_Show]; + } + item.lastShowADDate = [NSDate date]; + //此处目前没有处理back类型的广告的时间被忽略计时的情况 + //..... +} + +- (void)didClickAd:(MAAd *)ad { + + NSLog(@"点击了广告....."); +} + +- (void)didHideAd:(MAAd *)ad{ + NSLog(@"隐藏了ad...."); + if (self.callback) { + self.callback(1); + } + + + if (![self isADSSMode]) {//补量模式时,隐藏ad之后,不再主动loadAD,等通知是否隐藏 + [self loadAD:ad]; + } +} + +- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error{ + NSLog(@"展示广告失败...."); + [self loadAD:ad]; +} +@end + + + + + + + + + + diff --git a/HDwallpaper/LuxADManager/LuxADSSModeVC.h b/HDwallpaper/LuxADManager/LuxADSSModeVC.h new file mode 100644 index 0000000..5a9e6dd --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADSSModeVC.h @@ -0,0 +1,16 @@ +// +// LuxADSSModeVC.h +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface LuxADSSModeVC : UIViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/HDwallpaper/LuxADManager/LuxADSSModeVC.m b/HDwallpaper/LuxADManager/LuxADSSModeVC.m new file mode 100644 index 0000000..17b3697 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADSSModeVC.m @@ -0,0 +1,55 @@ +// +// LuxADSSModeVC.m +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import "LuxADSSModeVC.h" +#import "LuxNetManager.h" +#import "LuxADManager.h" + +@interface LuxADSSButton : UIButton +@property (nonatomic,weak) LuxADManagerInterstitialItem *item; +@end + +@implementation LuxADSSButton + +@end + +@interface LuxADSSModeVC () + +@end + +@implementation LuxADSSModeVC + + + +- (void)viewDidLoad { + [super viewDidLoad]; + __block CGFloat currY = 80.0; + CGFloat cellHeight = 50; + CGFloat cellPadding = 20; + CGFloat screenW = [UIScreen mainScreen].bounds.size.width; + CGFloat cellWidth = (screenW - cellPadding*2); + + [[[LuxADManager shareInstance] allInterstitialAds] enumerateObjectsUsingBlock:^(LuxADManagerInterstitialItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + CGRect rect = CGRectMake(cellPadding, currY, cellWidth, cellHeight); + LuxADSSButton *button = [LuxADSSButton new]; + button.item = obj; + button.frame = rect; + [button addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:[NSString stringWithFormat:@"ID: %@",obj.adItem.adUnitIdentifier] forState:UIControlStateNormal]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + button.titleLabel.font = [UIFont systemFontOfSize:18]; + button.backgroundColor = [UIColor orangeColor]; + + [self.view addSubview:button]; + currY += cellPadding + cellHeight; + }]; +} + +- (void)clickAction:(LuxADSSButton *)sender { + sender.item.actionBlock(self); +} +@end diff --git a/HDwallpaper/LuxADManager/LuxADSuperVC.h b/HDwallpaper/LuxADManager/LuxADSuperVC.h new file mode 100644 index 0000000..0bc1cdc --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADSuperVC.h @@ -0,0 +1,17 @@ +// +// LuxADSuperVC.h +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface LuxADSuperVC : UIViewController +@property (nonatomic) NSInteger adIndex; + +@end + +NS_ASSUME_NONNULL_END diff --git a/HDwallpaper/LuxADManager/LuxADSuperVC.m b/HDwallpaper/LuxADManager/LuxADSuperVC.m new file mode 100644 index 0000000..45194f0 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxADSuperVC.m @@ -0,0 +1,35 @@ +// +// LuxADSuperVC.m +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import "LuxADSuperVC.h" +#import "LuxADManager.h" +@interface LuxADSuperVC () + +@end + +@implementation LuxADSuperVC + +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + if (_adIndex > 0) { + __weak typeof(self)weakSelf = self; + [[LuxADManager shareInstance] showADWithIndex:_adIndex callback:^(NSInteger actionType) {//关闭ad + //... + [weakSelf.navigationController popViewControllerAnimated:NO]; + }]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; +} + +@end diff --git a/HDwallpaper/LuxADManager/LuxNetManager.h b/HDwallpaper/LuxADManager/LuxNetManager.h new file mode 100644 index 0000000..11dfa22 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxNetManager.h @@ -0,0 +1,24 @@ +// +// LuxNetManager.h +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +typedef void(^LuxNetManagerCallback)(NSError *err,BOOL state,NSDictionary *result); +@interface LuxNetManager : NSObject +//请求远程ip ++ (void)requestRemoteIp ; + ++ (void)uploadAD_Start; + ++ (void)uploadAD_Show ; + ++ (void)uploadAD_Load; +@end +NS_ASSUME_NONNULL_END diff --git a/HDwallpaper/LuxADManager/LuxNetManager.m b/HDwallpaper/LuxADManager/LuxNetManager.m new file mode 100644 index 0000000..bcfdb41 --- /dev/null +++ b/HDwallpaper/LuxADManager/LuxNetManager.m @@ -0,0 +1,263 @@ +// +// LuxNetManager.m +// TallPaper +// +// Created by aaa on 2024/7/26. +// + +#import "LuxNetManager.h" +#import +#include +#include +#include +#include +#import "ifaddrs.h" +#import +#import +#import +#define kBaseUrl @"http://111.9.47.226:38080/" +#define kUrlStr(_path) [kBaseUrl stringByAppendingPathComponent:_path] + +#define kURL_AD_Start @"/top_selection/save_app_start_log" +#define kURL_AD_Load @"/top_selection/save_ad_load_log" +#define kURL_AD_Show @"/top_selection/save_ad_show_log" + +@implementation LuxNetManager + ++ (void)uploadData:(NSMutableDictionary *)mdic urlPath:(NSString *)urlPath callback:(LuxNetManagerCallback)callback { + NSURL *url = [NSURL URLWithString:kUrlStr(urlPath)]; + if (!url) { + NSLog(@"Invalid URL: %@", kUrlStr(urlPath)); + return; + } + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + request.HTTPMethod = @"POST"; + [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; + NSError *jsonError; + NSData *data = [NSJSONSerialization dataWithJSONObject:mdic options:kNilOptions error:&jsonError]; + + if (jsonError) { + NSLog(@"Error serializing JSON: %@", jsonError.localizedDescription); + return; + } + + [request setHTTPBody:data]; + + NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + if (error) { + NSLog(@"Network error: %@", error.localizedDescription); + } else { + NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; + NSLog(@"HTTP Status Code: %ld", (long)httpResponse.statusCode); + if (data) { + NSError *jsonParseError; + NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonParseError]; + if (jsonParseError) { + NSLog(@"Error parsing response JSON: %@", jsonParseError.localizedDescription); + } else { + NSLog(@"Server response: %@", result); + if (callback) { + callback(nil, YES, result); + } + } + } else { + NSLog(@"No data received"); + } + } + }]; + [task resume]; +} + ++ (void)uploadAD_Start{ + NSMutableDictionary *mdic = [NSMutableDictionary dictionary]; + [mdic setObject:[self getDeviceId] forKey:@"deviceId"]; + [mdic setObject:[self getGaid] forKey:@"gaid"]; + [mdic setObject:[self getLocalIp] forKey:@"localIp"]; + NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"]; + if (remoteIp) { + [mdic setObject:remoteIp forKey:@"remoteIp"]; + }else{ + [mdic setObject:@"" forKey:@"remoteIp"]; + } + [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"]; + [mdic setObject:@"" forKey:@"linkId"]; + [mdic setObject:@"" forKey:@"dataId"]; + + [LuxNetManager uploadData:mdic urlPath:kURL_AD_Start callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) { + + }]; +} + ++ (void)uploadAD_Show { + NSMutableDictionary *mdic = [NSMutableDictionary dictionary]; + + [mdic setObject:[self getDeviceId] forKey:@"deviceId"]; + [mdic setObject:[self getGaid] forKey:@"gaid"]; + [mdic setObject:[self getLocalIp] forKey:@"localIp"]; + + NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"]; + [mdic setObject:remoteIp ? remoteIp : @"" forKey:@"remoteIp"]; + + [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"]; + [mdic setObject:@"MAX" forKey:@"adPlatform"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"countryCode"] forKey:@"countryCode"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"adId"] forKey:@"adId"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"platformResponseTime"] forKey:@"platformResponseTime"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"shelfNumber"] forKey:@"shelfNumber"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"ecpm"] forKey:@"ecpm"]; + [mdic setObject:@0.0 forKey:@"getIpResponseTime"]; + [mdic setObject:@"" forKey:@"dsp"]; + [mdic setObject:@"" forKey:@"dataId"]; + [mdic setObject:@"" forKey:@"linkId"]; + [mdic setObject:@0 forKey:@"loadTime"]; + [mdic setObject:@(YES) forKey:@"succeed"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"network"] forKey:@"network"]; + + // Log the JSON data to verify it's correctly formatted + NSError *jsonError; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:&jsonError]; + if (jsonError) { + NSLog(@"Error serializing JSON: %@", jsonError.localizedDescription); + return; + } + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + NSLog(@"Uploading AD Show with data: %@", jsonString); + + [LuxNetManager uploadData:mdic urlPath:kURL_AD_Show callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) { + if (err) { + NSLog(@"Error uploading AD Show: %@", err.localizedDescription); + } else { + NSLog(@"Upload AD Show response: %@", result); + } + }]; +} + ++ (void)uploadAD_Load { + NSMutableDictionary *mdic = [NSMutableDictionary dictionary]; + + [mdic setObject:[self getDeviceId] forKey:@"deviceId"]; + [mdic setObject:[self getGaid] forKey:@"gaid"]; + [mdic setObject:[self getLocalIp] forKey:@"localIp"]; + + NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"]; + [mdic setObject:remoteIp ? remoteIp : @"" forKey:@"remoteIp"]; + + [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"]; + [mdic setObject:@"MAX" forKey:@"adPlatform"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"countryCode"] forKey:@"countryCode"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"adId"] forKey:@"adId"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"platformResponseTime"] forKey:@"platformResponseTime"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"shelfNumber"] forKey:@"shelfNumber"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"ecpm"] forKey:@"ecpm"]; + [mdic setObject:@0.0 forKey:@"getIpResponseTime"]; + [mdic setObject:@"" forKey:@"dsp"]; + [mdic setObject:@"" forKey:@"dataId"]; + [mdic setObject:@"" forKey:@"linkId"]; + [mdic setObject:@0 forKey:@"loadTime"]; + [mdic setObject:@(YES) forKey:@"succeed"]; + [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"network"] forKey:@"network"]; + + // Log the JSON data to verify it's correctly formatted + NSError *jsonError; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:&jsonError]; + if (jsonError) { + NSLog(@"Error 222 serializing JSON: %@", jsonError.localizedDescription); + return; + } + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + NSLog(@"Uploading 22 AD Show with data: %@", jsonString); + + [LuxNetManager uploadData:mdic urlPath:kURL_AD_Load callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) { + if (err) { + NSLog(@"222222222: %@", err.localizedDescription); + } else { + NSLog(@"222222222222: %@", result); + } + }]; +} + +//请求远程ip ++ (void)requestRemoteIp { + NSURL *url = [NSURL URLWithString:@"https://api.ipify.org/?format=json"]; + NSURLRequest *request = [NSURLRequest requestWithURL:url]; + NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + if(error) { + NSLog(@"解析ip失败...."); + } + else { + id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; + if(result) { + NSString *ip = result[@"ip"]; + if(ip.length) { + [[NSUserDefaults standardUserDefaults] setObject:ip forKey:@"kIP_key"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + + } + else { + NSLog(@"解析ip失败...."); + } + } + else { + NSLog(@"解析ip失败...."); + } + } + }]; + [task resume]; +} + ++ (NSString *)getDeviceId { + return [UIDevice currentDevice].identifierForVendor.UUIDString; +} + + ++ (NSString *)getLocalIp { + NSString *address = @"an error occurred when obtaining ip address"; + struct ifaddrs *interfaces = NULL; + struct ifaddrs *temp_addr = NULL; + int success = 0; + success = getifaddrs(&interfaces); + if (success == 0) { // 0 表示获取成功 + temp_addr = interfaces; + while (temp_addr != NULL) { + if( temp_addr->ifa_addr->sa_family == AF_INET) { + +NSInteger bravery_T = 6; +NSInteger awful_q = [[NSUserDefaults standardUserDefaults] integerForKey:@"trademark_e"]; +awful_q *= bravery_T; +[[NSUserDefaults standardUserDefaults] setInteger:awful_q forKey:@"trademark_e"]; + + + // Check if interface is en0 which is the wifi connection on the iPhone + if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { + +NSDateFormatter *rebuke_5 = [NSDateFormatter new]; +[rebuke_5 setDateFormat:@"yyyy-MM-dd HH:mm"]; +NSString *apple_5 = [rebuke_5 stringFromDate:[NSDate date]]; +[[NSUserDefaults standardUserDefaults] setObject:apple_5 forKey:@"brutal_f"]; + + + // Get NSString from C String + address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; + } + } + temp_addr = temp_addr->ifa_next; + } + } + freeifaddrs(interfaces); + return address; +} + ++ (NSString *)getPackageName { + NSString *bid = [[NSBundle mainBundle] bundleIdentifier]; + return bid; +} + ++ (NSString *)getGaid { + NSString *idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; + return idfa; +} + + + +@end diff --git a/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m b/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m index 18dc762..ee87d09 100644 --- a/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m +++ b/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m @@ -34,10 +34,10 @@ // #define kAppLovinSDK_Key @"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX" -#define kWallPaper_OpenAD @"228275830e494edc" //开屏 -#define kInterstitial_BackAD @"43c096614eb15e06"//返回 插页 -#define kInterstitial_SaveAD @"99a545c14fe760b4" //保存 插页 -#define kInterstitial_SearchAD @"fcfba91be4420a25" //搜索 插页 +#define kWallPaper_OpenAD @"748bee67bbad21b9" //开屏 +#define kInterstitial_BackAD @"e5837c56c18ee712"//返回 插页 +#define kInterstitial_SaveAD @"edf0554479388c05" //保存 插页 +#define kInterstitial_SearchAD @"5a3cff8307e36497" //搜索 插页 #define kOpenAdCTimeLength 15.0//最多等待开屏广告加载时常 #define kOpenADPerSec 0.05 @@ -383,20 +383,21 @@ lesion_5 *= villain_5; self.retryAttempt_searchAD = 0; [[NSUserDefaults standardUserDefaults] setObject:ALSdk.shared.configuration.countryCode forKey:@"countryCode"]; - NSTimeInterval interval = ad.requestLatency; - NSNumber *intervalNumber = [NSNumber numberWithDouble:interval]; - [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"]; + NSTimeInterval interval = ad.requestLatency; + NSNumber *intervalNumber = [NSNumber numberWithDouble:interval]; + [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"]; - [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"]; + [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"]; - double revenue = ad.revenue; - NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue]; - [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"]; + double revenue = ad.revenue; + NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue]; + [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"]; - [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"]; + [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"]; - [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"]; - [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"]; + [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"]; + [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"]; + NSLog(@"-----%@",ad.adUnitIdentifier); NSLog(@"self.openAD.adUnitIdentifier-----%@",self.openAD.adUnitIdentifier); diff --git a/TallPaper.xcodeproj/project.pbxproj b/TallPaper.xcodeproj/project.pbxproj index 8da28d5..4acf77d 100644 --- a/TallPaper.xcodeproj/project.pbxproj +++ b/TallPaper.xcodeproj/project.pbxproj @@ -30,6 +30,10 @@ 0004D8972C363D5800B3E467 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0004D8962C363D5800B3E467 /* InfoPlist.strings */; }; 0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0004D89B2C36443C00B3E467 /* AWM_NetManager.m */; }; 00C5EEC72C52404B000553BF /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C5EEC62C52404B000553BF /* GoogleService-Info.plist */; }; + 00C5EECD2C527F71000553BF /* LuxADManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EECC2C527F71000553BF /* LuxADManager.m */; }; + 00C5EED02C5355BE000553BF /* LuxNetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EECF2C5355BE000553BF /* LuxNetManager.m */; }; + 00C5EED32C537155000553BF /* LuxADSuperVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EED22C537155000553BF /* LuxADSuperVC.m */; }; + 00C5EED62C537DD7000553BF /* LuxADSSModeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */; }; 057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 057AF7942BF1E86F00078C98 /* AppDelegate.m */; }; 057AF7A02BF1E87100078C98 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 057AF79F2BF1E87100078C98 /* Assets.xcassets */; }; 057AF7A32BF1E87100078C98 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 057AF7A12BF1E87100078C98 /* LaunchScreen.storyboard */; }; @@ -92,6 +96,14 @@ 0004D89B2C36443C00B3E467 /* AWM_NetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWM_NetManager.m; sourceTree = ""; }; 00218D932C4F807A00966466 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; 00C5EEC62C52404B000553BF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 00C5EECB2C527F71000553BF /* LuxADManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADManager.h; sourceTree = ""; }; + 00C5EECC2C527F71000553BF /* LuxADManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADManager.m; sourceTree = ""; }; + 00C5EECE2C5355BE000553BF /* LuxNetManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxNetManager.h; sourceTree = ""; }; + 00C5EECF2C5355BE000553BF /* LuxNetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxNetManager.m; sourceTree = ""; }; + 00C5EED12C537155000553BF /* LuxADSuperVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSuperVC.h; sourceTree = ""; }; + 00C5EED22C537155000553BF /* LuxADSuperVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSuperVC.m; sourceTree = ""; }; + 00C5EED42C537DD7000553BF /* LuxADSSModeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSSModeVC.h; sourceTree = ""; }; + 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSSModeVC.m; sourceTree = ""; }; 041A9EAF08B4BEE8FF03DD23 /* Pods-HD wallpaper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HD wallpaper.debug.xcconfig"; path = "Target Support Files/Pods-HD wallpaper/Pods-HD wallpaper.debug.xcconfig"; sourceTree = ""; }; 057AF7902BF1E86F00078C98 /* TallPaper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TallPaper.app; sourceTree = BUILT_PRODUCTS_DIR; }; 057AF7932BF1E86F00078C98 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -188,6 +200,21 @@ path = Net; sourceTree = ""; }; + 00C5EECA2C527F59000553BF /* LuxADManager */ = { + isa = PBXGroup; + children = ( + 00C5EECB2C527F71000553BF /* LuxADManager.h */, + 00C5EECC2C527F71000553BF /* LuxADManager.m */, + 00C5EECE2C5355BE000553BF /* LuxNetManager.h */, + 00C5EECF2C5355BE000553BF /* LuxNetManager.m */, + 00C5EED12C537155000553BF /* LuxADSuperVC.h */, + 00C5EED22C537155000553BF /* LuxADSuperVC.m */, + 00C5EED42C537DD7000553BF /* LuxADSSModeVC.h */, + 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */, + ); + path = LuxADManager; + sourceTree = ""; + }; 057AF7872BF1E86F00078C98 = { isa = PBXGroup; children = ( @@ -214,6 +241,7 @@ 0004D8992C36442700B3E467 /* Net */, 0004D8822C35349200B3E467 /* WallPapaerADManager */, 0004D85F2C352F3C00B3E467 /* FW */, + 00C5EECA2C527F59000553BF /* LuxADManager */, 057AF7932BF1E86F00078C98 /* AppDelegate.h */, 057AF7942BF1E86F00078C98 /* AppDelegate.m */, 057AF7AC2BF1F13400078C98 /* AWM_OnePageViewController.h */, @@ -428,12 +456,16 @@ 057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */, 0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */, 057AF7C32BF20CF700078C98 /* AWM_DetailViewController.m in Sources */, + 00C5EECD2C527F71000553BF /* LuxADManager.m in Sources */, 057AF7B42BF1F14300078C98 /* AWM_ditViewController.m in Sources */, 0004D8852C3534AC00B3E467 /* AWM_WallPapaerADManager.m in Sources */, + 00C5EED02C5355BE000553BF /* LuxNetManager.m in Sources */, 75CC6F9D2C4649C20013FB06 /* AWP_Color.m in Sources */, + 00C5EED62C537DD7000553BF /* LuxADSSModeVC.m in Sources */, 75CC6FA62C464BB10013FB06 /* CustomButton.m in Sources */, 75CC6FA92C464C110013FB06 /* CustomTableView.m in Sources */, 057AF7C02BF209E100078C98 /* AWM_AllWallpaperViewController.m in Sources */, + 00C5EED32C537155000553BF /* LuxADSuperVC.m in Sources */, 057AF7A62BF1E87100078C98 /* main.m in Sources */, 0004D88B2C355DF100B3E467 /* AWM_UserPravcyVC.m in Sources */, ); diff --git a/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme b/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme index 1bb87b2..98b5ed4 100644 --- a/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme +++ b/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme @@ -32,8 +32,8 @@