添加了一堆ad

This commit is contained in:
bluesea 2024-07-26 16:55:25 +08:00
parent f3682705e2
commit 39699cc3e8
14 changed files with 1057 additions and 39 deletions

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "FD3B3F5E-5CAB-4DC2-B977-166EA409F38B"
type = "0"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
uuid = "996C7F0A-206E-4606-8909-BB82BA724ACD"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
breakpointStackSelectionBehavior = "1"
scope = "1"
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@ -14,6 +14,8 @@
#import <Firebase/Firebase.h> #import <Firebase/Firebase.h>
#import <FirebaseCore/FirebaseCore.h> #import <FirebaseCore/FirebaseCore.h>
#import <FirebaseRemoteConfig/FirebaseRemoteConfig.h> #import <FirebaseRemoteConfig/FirebaseRemoteConfig.h>
#import "LuxADManager.h"
@interface AppDelegate () @interface AppDelegate ()
@property (nonatomic,strong) NSTimer *attTimer; @property (nonatomic,strong) NSTimer *attTimer;
@end @end
@ -79,29 +81,88 @@ NSDateFormatter *unfasten_4 = [NSDateFormatter new];
NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]]; NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]];
[[NSUserDefaults standardUserDefaults] setObject:noble_W forKey:@"shack_k"]; [[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 = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor]; self.window.backgroundColor = [UIColor whiteColor];
// [AWM_NetManager uploadAD_Start]; UIViewController *vc = [UIViewController new];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible]; [self.window makeKeyAndVisible];
// [[AWM_WallPapaerADManager shareInstance] showFirstOpenAD:^(NSInteger actionType) { [FIRApp configure];
[self configureRootVC]; [self checkATT];
// } window:self.window];
NSLog(@">>>>>>>>>HDWall.......");
[self configureADByFirebase];
return YES; 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 { - (void)configureRootVC {
@ -145,7 +206,7 @@ transmit_M *= alkali_F;
tb.viewControllers = @[wpHomeNV,wpHotNV,wpEditNV,wpMyNV]; tb.viewControllers = @[wpHomeNV,wpHotNV,wpEditNV,wpMyNV];
tb.selectedIndex = 0; tb.selectedIndex = 0;
self.window.rootViewController = tb; 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"]; [[NSUserDefaults standardUserDefaults] setObject:innuendo_6 forKey:@"moderation_T"];
[[AWM_WallPapaerADManager shareInstance] showOpenAD]; [[LuxADManager shareInstance] showOpenAD];
} }

View File

@ -0,0 +1,67 @@
//
// WPLuxADManager.h
// TallPaper
//
// Created by aaa on 2024/7/25.
//
#import <Foundation/Foundation.h>
#import <AppLovinSDK/AppLovinSDK.h>
#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<MAAdDelegate>)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 <LuxADManagerInterstitialItem *> *)allInterstitialAds;
//根据指定的在_adItemsArr中的index展示插屏ad
- (void)showADWithIndex:(NSInteger)index callback:(LuxADManagerCallback)callback ;
//判断当前是否为广告不量模式
- (BOOL)isADSSMode;
@end
NS_ASSUME_NONNULL_END

View File

@ -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<MAAdDelegate>)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock{
LuxADManagerInterstitialItem *item = [[LuxADManagerInterstitialItem alloc] initWithAdId:adId adDelegate:adDelegate actionBlock:actionBlock];
return item;
}
- (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id<MAAdDelegate>)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 ()<MAAdDelegate>
@property (nonatomic,strong) ALSdkInitializationConfiguration *adConfig;
@property (nonatomic,strong) NSMutableArray <LuxADManagerInterstitialItem *>*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];
}
//windowSS VC
- (void)showSSModeControlVC {
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
LuxADSSModeVC *vc = [LuxADSSModeVC new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
keyWindow.rootViewController = nav;
}
//idsad
- (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 <LuxADManagerInterstitialItem *> *)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 -----广
//_adItemsArrindexad
- (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(@"超出所初始化的广告数量边界....");
}
}
//_adItemsArrad
- (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);
}
}
//maadLuxADManagerInterstitialItem
- (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

View File

@ -0,0 +1,16 @@
//
// LuxADSSModeVC.h
// TallPaper
//
// Created by aaa on 2024/7/26.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface LuxADSSModeVC : UIViewController
@end
NS_ASSUME_NONNULL_END

View File

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

View File

@ -0,0 +1,17 @@
//
// LuxADSuperVC.h
// TallPaper
//
// Created by aaa on 2024/7/26.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface LuxADSuperVC : UIViewController
@property (nonatomic) NSInteger adIndex;
@end
NS_ASSUME_NONNULL_END

View File

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

View File

@ -0,0 +1,24 @@
//
// LuxNetManager.h
// TallPaper
//
// Created by aaa on 2024/7/26.
//
#import <Foundation/Foundation.h>
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

View File

@ -0,0 +1,263 @@
//
// LuxNetManager.m
// TallPaper
//
// Created by aaa on 2024/7/26.
//
#import "LuxNetManager.h"
#import <UIKit/UIKit.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <net/if.h>
#include <net/if_dl.h>
#import "ifaddrs.h"
#import <arpa/inet.h>
#import <Network/Network.h>
#import <AdSupport/AdSupport.h>
#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

View File

@ -34,10 +34,10 @@
// //
#define kAppLovinSDK_Key @"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX" #define kAppLovinSDK_Key @"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX"
#define kWallPaper_OpenAD @"228275830e494edc" // #define kWallPaper_OpenAD @"748bee67bbad21b9" //
#define kInterstitial_BackAD @"43c096614eb15e06"// #define kInterstitial_BackAD @"e5837c56c18ee712"//
#define kInterstitial_SaveAD @"99a545c14fe760b4" // #define kInterstitial_SaveAD @"edf0554479388c05" //
#define kInterstitial_SearchAD @"fcfba91be4420a25" // #define kInterstitial_SearchAD @"5a3cff8307e36497" //
#define kOpenAdCTimeLength 15.0//广 #define kOpenAdCTimeLength 15.0//广
#define kOpenADPerSec 0.05 #define kOpenADPerSec 0.05
@ -397,6 +397,7 @@ lesion_5 *= villain_5;
[[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"]; [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"];
[[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"]; [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"];
NSLog(@"-----%@",ad.adUnitIdentifier); NSLog(@"-----%@",ad.adUnitIdentifier);
NSLog(@"self.openAD.adUnitIdentifier-----%@",self.openAD.adUnitIdentifier); NSLog(@"self.openAD.adUnitIdentifier-----%@",self.openAD.adUnitIdentifier);

View File

@ -30,6 +30,10 @@
0004D8972C363D5800B3E467 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0004D8962C363D5800B3E467 /* InfoPlist.strings */; }; 0004D8972C363D5800B3E467 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0004D8962C363D5800B3E467 /* InfoPlist.strings */; };
0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0004D89B2C36443C00B3E467 /* AWM_NetManager.m */; }; 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 */; }; 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 */; }; 057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 057AF7942BF1E86F00078C98 /* AppDelegate.m */; };
057AF7A02BF1E87100078C98 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 057AF79F2BF1E87100078C98 /* Assets.xcassets */; }; 057AF7A02BF1E87100078C98 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 057AF79F2BF1E87100078C98 /* Assets.xcassets */; };
057AF7A32BF1E87100078C98 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 057AF7A12BF1E87100078C98 /* LaunchScreen.storyboard */; }; 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 = "<group>"; }; 0004D89B2C36443C00B3E467 /* AWM_NetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWM_NetManager.m; sourceTree = "<group>"; };
00218D932C4F807A00966466 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = "<group>"; }; 00218D932C4F807A00966466 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = "<group>"; };
00C5EEC62C52404B000553BF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; 00C5EEC62C52404B000553BF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
00C5EECB2C527F71000553BF /* LuxADManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADManager.h; sourceTree = "<group>"; };
00C5EECC2C527F71000553BF /* LuxADManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADManager.m; sourceTree = "<group>"; };
00C5EECE2C5355BE000553BF /* LuxNetManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxNetManager.h; sourceTree = "<group>"; };
00C5EECF2C5355BE000553BF /* LuxNetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxNetManager.m; sourceTree = "<group>"; };
00C5EED12C537155000553BF /* LuxADSuperVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSuperVC.h; sourceTree = "<group>"; };
00C5EED22C537155000553BF /* LuxADSuperVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSuperVC.m; sourceTree = "<group>"; };
00C5EED42C537DD7000553BF /* LuxADSSModeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSSModeVC.h; sourceTree = "<group>"; };
00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSSModeVC.m; sourceTree = "<group>"; };
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 = "<group>"; }; 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 = "<group>"; };
057AF7902BF1E86F00078C98 /* TallPaper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TallPaper.app; sourceTree = BUILT_PRODUCTS_DIR; }; 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 = "<group>"; }; 057AF7932BF1E86F00078C98 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@ -188,6 +200,21 @@
path = Net; path = Net;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
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 = "<group>";
};
057AF7872BF1E86F00078C98 = { 057AF7872BF1E86F00078C98 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -214,6 +241,7 @@
0004D8992C36442700B3E467 /* Net */, 0004D8992C36442700B3E467 /* Net */,
0004D8822C35349200B3E467 /* WallPapaerADManager */, 0004D8822C35349200B3E467 /* WallPapaerADManager */,
0004D85F2C352F3C00B3E467 /* FW */, 0004D85F2C352F3C00B3E467 /* FW */,
00C5EECA2C527F59000553BF /* LuxADManager */,
057AF7932BF1E86F00078C98 /* AppDelegate.h */, 057AF7932BF1E86F00078C98 /* AppDelegate.h */,
057AF7942BF1E86F00078C98 /* AppDelegate.m */, 057AF7942BF1E86F00078C98 /* AppDelegate.m */,
057AF7AC2BF1F13400078C98 /* AWM_OnePageViewController.h */, 057AF7AC2BF1F13400078C98 /* AWM_OnePageViewController.h */,
@ -428,12 +456,16 @@
057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */, 057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */,
0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */, 0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */,
057AF7C32BF20CF700078C98 /* AWM_DetailViewController.m in Sources */, 057AF7C32BF20CF700078C98 /* AWM_DetailViewController.m in Sources */,
00C5EECD2C527F71000553BF /* LuxADManager.m in Sources */,
057AF7B42BF1F14300078C98 /* AWM_ditViewController.m in Sources */, 057AF7B42BF1F14300078C98 /* AWM_ditViewController.m in Sources */,
0004D8852C3534AC00B3E467 /* AWM_WallPapaerADManager.m in Sources */, 0004D8852C3534AC00B3E467 /* AWM_WallPapaerADManager.m in Sources */,
00C5EED02C5355BE000553BF /* LuxNetManager.m in Sources */,
75CC6F9D2C4649C20013FB06 /* AWP_Color.m in Sources */, 75CC6F9D2C4649C20013FB06 /* AWP_Color.m in Sources */,
00C5EED62C537DD7000553BF /* LuxADSSModeVC.m in Sources */,
75CC6FA62C464BB10013FB06 /* CustomButton.m in Sources */, 75CC6FA62C464BB10013FB06 /* CustomButton.m in Sources */,
75CC6FA92C464C110013FB06 /* CustomTableView.m in Sources */, 75CC6FA92C464C110013FB06 /* CustomTableView.m in Sources */,
057AF7C02BF209E100078C98 /* AWM_AllWallpaperViewController.m in Sources */, 057AF7C02BF209E100078C98 /* AWM_AllWallpaperViewController.m in Sources */,
00C5EED32C537155000553BF /* LuxADSuperVC.m in Sources */,
057AF7A62BF1E87100078C98 /* main.m in Sources */, 057AF7A62BF1E87100078C98 /* main.m in Sources */,
0004D88B2C355DF100B3E467 /* AWM_UserPravcyVC.m in Sources */, 0004D88B2C355DF100B3E467 /* AWM_UserPravcyVC.m in Sources */,
); );

View File

@ -32,8 +32,8 @@
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"