From 9684b14245b1c36d3488985636256354e357c1aa Mon Sep 17 00:00:00 2001
From: Wuyx <1139965056@qq.com>
Date: Wed, 30 Nov 2016 15:29:17 +0800
Subject: [PATCH] WACbImpl

---
 config/wa_sdk_impl_config_chartboost.xml                              |    8 
 frameworks/Chartboost.framework/Versions/A/Chartboost                 |    0 
 frameworks/Chartboost.framework/Versions/Current                      |    1 
 frameworks/Chartboost.framework/Headers                               |    1 
 frameworks/WACbImpl.framework/WACbImpl                                |    0 
 frameworks/WACbImpl.framework/Info.plist                              |    0 
 WACbImpl.podspec                                                      |   25 
 frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsBadge.h  |   32 +
 frameworks/WACbImpl.framework/_CodeSignature/CodeDirectory            |    0 
 frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h       | 1093 +++++++++++++++++++++++++++++++++++++++
 frameworks/WACbImpl.framework/_CodeSignature/CodeRequirements         |    0 
 frameworks/WACbImpl.framework/Modules/module.modulemap                |    6 
 frameworks/Chartboost.framework/Chartboost                            |    1 
 frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h         |  125 ++++
 frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h      |  151 +++++
 frameworks/WACbImpl.framework/_CodeSignature/CodeResources            |  127 ++++
 frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsButton.h |   44 +
 frameworks/WACbImpl.framework/_CodeSignature/CodeSignature            |    0 
 frameworks/WACbImpl.framework/Headers/WACbImpl.h                      |   19 
 19 files changed, 1,633 insertions(+), 0 deletions(-)

diff --git a/WACbImpl.podspec b/WACbImpl.podspec
new file mode 100644
index 0000000..de12e4d
--- /dev/null
+++ b/WACbImpl.podspec
@@ -0,0 +1,25 @@
+#
+#  Be sure to run `pod spec lint WACbImpl.podspec' to ensure this is a
+#  valid spec and to remove all comments including this before submitting the spec.
+#
+#  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
+#  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
+#
+
+Pod::Spec.new do |s|
+
+s.name = 'WACbImpl'
+s.version = '3.6.0'
+s.summary = 'WACbImpl framework in production environment.'
+s.license = 'MIT'
+s.author = { "Wuyx" => "wuyixin_gh@gamehollywood.com" }
+s.homepage = 'http://git.gamehollywood.com:8082/summary/WACbImpl.git'
+s.source = { :git => "http://admin@git.gamehollywood.com:8082/r/WACbImpl.git" , :tag => s.version}
+s.platform = :ios
+s.ios.deployment_target = "7.0"
+s.vendored_frameworks = 'frameworks/*.framework'
+s.resources = ['config/*.xml']
+s.requires_arc = true
+s.dependency 'WASdkIntf', '~> 3.6.0'   #此处添加私有库依赖
+s.dependency 'WASdkImpl', '~> 3.6.0'
+end
diff --git a/config/wa_sdk_impl_config_chartboost.xml b/config/wa_sdk_impl_config_chartboost.xml
new file mode 100644
index 0000000..16555ef
--- /dev/null
+++ b/config/wa_sdk_impl_config_chartboost.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<config>
+	<version val="CB3.6.0"/>
+    <comps>
+        <!-- 数据收集模块 -->
+        <comp module="TRA" plaf="CHARTBOOST" mandatory="YES" value="WACBTrack" desc="CHARTBOOST数据统计"/>
+    </comps>
+</config>
diff --git a/frameworks/Chartboost.framework/Chartboost b/frameworks/Chartboost.framework/Chartboost
new file mode 120000
index 0000000..8e4c39e
--- /dev/null
+++ b/frameworks/Chartboost.framework/Chartboost
@@ -0,0 +1 @@
+./Versions/A/Chartboost
\ No newline at end of file
diff --git a/frameworks/Chartboost.framework/Headers b/frameworks/Chartboost.framework/Headers
new file mode 120000
index 0000000..b0cc393
--- /dev/null
+++ b/frameworks/Chartboost.framework/Headers
@@ -0,0 +1 @@
+./Versions/A/Headers
\ No newline at end of file
diff --git a/frameworks/Chartboost.framework/Versions/A/Chartboost b/frameworks/Chartboost.framework/Versions/A/Chartboost
new file mode 100644
index 0000000..c4a8274
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Chartboost
Binary files differ
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h b/frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h
new file mode 100644
index 0000000..bbba806
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h
@@ -0,0 +1,151 @@
+/*
+ * CBAnalytics.h
+ * Chartboost
+ * 6.0.0
+ *
+ * Copyright 2011 Chartboost. All rights reserved.
+ */
+
+#import <StoreKit/StoreKit.h>
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBLevelType)
+ 
+ @abstract
+ Used with trackLevelInfo calls to describe meta information about the level value as it 
+ pertains to the game's context.
+ */
+typedef NS_ENUM(NSUInteger, CBLevelType) {
+    /*! Highest level reached */
+    HIGHEST_LEVEL_REACHED = 1,
+    /*! Current area level reached */
+    CURRENT_AREA = 2,
+    /*! Current character level reached */
+    CHARACTER_LEVEL = 3,
+    /*! Other sequential level reached */
+    OTHER_SEQUENTIAL = 4,
+    /*! Current non sequential level reached */
+    OTHER_NONSEQUENTIAL = 5
+};
+
+/*!
+ @class ChartboostAnalytics
+ 
+ @abstract
+ Provide methods to track various events for improved targeting.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface CBAnalytics : NSObject
+
+/*!
+ @abstract
+ Track an In App Purchase Event.
+
+ @param receipt The transaction receipt used to validate the purchase.
+ 
+ @param productTitle The localized title of the product.
+ 
+ @param productDescription The localized description of the product.
+ 
+ @param productPrice The price of the product.
+ 
+ @param productCurrency The localized currency of the product.
+ 
+ @param productIdentifier The IOS identifier for the product.
+
+ @discussion Tracks In App Purchases for later use with user segmentation
+ and targeting.
+*/
++ (void)trackInAppPurchaseEvent:(NSData *)receipt
+                   productTitle:(NSString *)productTitle
+             productDescription:(NSString *)productDescription
+                   productPrice:(NSDecimalNumber *)productPrice
+                productCurrency:(NSString *)productCurrency
+              productIdentifier:(NSString *)productIdentifier;
+
+/*!
+ @abstract
+ Track an In App Purchase Event.
+
+ @param receiptString The base64 encoded receipt string used to validate the purchase.
+ 
+ @param productTitle The localized title of the product.
+ 
+ @param productDescription The localized description of the product.
+ 
+ @param productPrice The price of the product.
+ 
+ @param productCurrency The localized currency of the product.
+ 
+ @param productIdentifier The IOS identifier for the product.
+
+ @discussion Tracks In App Purchases for later use with user segmentation
+ and targeting.
+*/
++ (void)trackInAppPurchaseEventWithString:(NSString *)receiptString
+                   productTitle:(NSString *)productTitle
+             productDescription:(NSString *)productDescription
+                   productPrice:(NSDecimalNumber *)productPrice
+                productCurrency:(NSString *)productCurrency
+              productIdentifier:(NSString *)productIdentifier;
+/*!
+ @abstract
+ Track an In App Purchase Event.
+ 
+ @param receipt The transaction receipt used to validate the purchase.
+ 
+ @param product The SKProduct that was purchased.
+ 
+ @discussion Tracks In App Purchases for later use with user segmentation
+ and targeting.
+ */
++ (void)trackInAppPurchaseEvent:(NSData *)receipt
+                        product:(SKProduct *)product;
+
+
+/*!
+ @abstract
+ Track level information about your user. Can be sequential levelling, non-sequential levelling, character level, or other. 
+ 
+ @param eventLabel A string that disambiguates the eventField. Use it to provides a human readable string to answer the question - What are we tracking ?
+ 
+ @param eventField any value from the CBLevelType enumeration. Specifies whether this event is tracking a sequential levelling, non-sequential levelling, a character level, or other.
+ 
+ @param mainLevel integer value to be tracked that represents the main level
+ 
+ @param subLevel integer value to be tracked that represents the sub level, 0 if no relevant sub-level
+ 
+ @param description A string that disambiguates the mainLevel & subLevel. Use it to provide a human readable string to answer the question - What does the mainLevel number and subLevel nubmer represent in my game ?
+ 
+ @discussion Tracks In App Purchases for later use with user segmentation
+ and targeting.
+ */
++ (void)trackLevelInfo:(NSString*)eventLabel
+            eventField:(CBLevelType)eventField
+             mainLevel:(NSUInteger)mainLevel
+              subLevel:(NSUInteger)subLevel
+           description:(NSString*)description;
+
+/*!
+ @abstract
+ Track level information about your user. Can be sequential levelling, non-sequential levelling, character level, or other. 
+ 
+ @param eventLabel A string that disambiguates the eventField. Use it to provides a human readable string to answer the question - What are we tracking ?
+ 
+ @param eventField any value from the CBLevelType enumeration. Specifies whether this event is tracking a sequential levelling, non-sequential levelling, a character level, current area, or other.
+ 
+ @param mainLevel integer value to be tracked that represents the main level
+ 
+ @param description A string that disambiguates the mainLevel. Use it to provide a human readable string to answer the question - What does the mainLevel number represent in my game ?
+ 
+ @discussion Tracks In App Purchases for later use with user segmentation
+ and targeting.
+ */
++ (void)trackLevelInfo:(NSString*)eventLabel
+            eventField:(CBLevelType)eventField
+             mainLevel:(NSUInteger)mainLevel
+           description:(NSString*)description;
+
+@end
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h b/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h
new file mode 100644
index 0000000..3ff00e1
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h
@@ -0,0 +1,125 @@
+/*
+ * CBInPlay.h
+ * Chartboost
+ * 6.0.0
+ *
+ * Copyright 2011 Chartboost. All rights reserved.
+ */
+
+#import "Chartboost.h"
+
+/*! @abstract CBInPlay forward declaration. */
+@class CBInPlay;
+
+/*!
+ @class Chartboost
+ 
+ @abstract
+ Provide methods to display and controler Chartboost native advertising types.
+ This is a category extension that adds additional functionality to the Chartboost object.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface Chartboost (CBInPlay)
+
+/*!
+ @abstract
+ Cache a number of InPlay objects for the given CBLocation.
+
+ @param location The location for the Chartboost impression type.
+
+ @discussion This method will first check if there is a locally cached InPlay object set
+ for the given CBLocation and, if found, will do nothing. If no locally cached data exists
+ the method will attempt to fetch data from the Chartboost API server.
+*/
++ (void)cacheInPlay:(CBLocation)location;
+
+
+/*!
+ @abstract
+ Determine if a locally cached InPlay object exists for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if there a locally cached InPlay object, and NO if not.
+ 
+ @discussion A return value of YES here indicates that the corresponding
+ getInPlay:(CBLocation)location method will return an InPlay object without making
+ additional Chartboost API server requests to fetch data to present.
+ */
++ (BOOL)hasInPlay:(CBLocation)location;
+
+/*!
+ @abstract
+ Return an InPlay object for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return CBInPlay object if one exists in the InPlay cache or nil if one is not yet available.
+ 
+ @discussion This method will first check if there is a locally cached InPlay object
+ for the given CBLocation and, if found, will return the object using the locally cached data.
+ If no locally cached data exists the method will attempt to fetch data from the
+ Chartboost API server.  If the Chartboost API server is unavailable
+ or there is no eligible InPlay object to present in the given CBLocation this method
+ is a no-op.
+ */
++ (CBInPlay *)getInPlay:(CBLocation)location;
+
+@end
+
+
+/*!
+ @class CBInPlay
+ 
+ @abstract
+ CBInPlay ad type is a native ad type that is left the end user to integrate into their
+ applications own custom experiences.  Chartboost acts as a data marshalling system
+ and gives the developer access to specific attributes of the ad type.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface CBInPlay : NSObject
+
+/*! @abstract CBLocation target for the CBInPlay ad. */
+@property (nonatomic, readonly) CBLocation location;
+
+/*! @abstract Image byte data for the CBInPlay icon. */
+@property (nonatomic, strong, readonly) NSData *appIcon;
+
+/*! @abstract Application name associated with the ad. */
+@property (nonatomic, strong, readonly) NSString *appName;
+
+/*!
+ @abstract
+ Marks the CBInPlay object as shown and notifies the Charboost API servers.
+ 
+ @discussion This method will emit a server request to the Chartboost API servers
+ to mark the CBInPlay ad as viewed.  You must send this information to correlate
+ with installs driven by the ad.
+ */
+- (void)show;
+
+/*!
+ @abstract
+ Marks the CBInPlay object as clicked and notifies the Charboost API servers.
+ 
+ @discussion This method will emit a server request to the Chartboost API servers
+ to mark the CBInPlay ad as clicked.  You must send this information to correlate
+ with installs driven by the ad.
+ */
+- (void)click;
+
+/*!
+ @abstract
+ Clears all CBInPlay objects from the cache locations.
+ 
+ @discussion This method will clear all the CBInPlay native ads from the internal cash. 
+ This is intended to be used to either force an update for all content or reduce the
+ memory overhead of this feature.
+ */
+- (void)clearCache;
+
+@end
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsBadge.h b/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsBadge.h
new file mode 100644
index 0000000..9d5a80f
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsBadge.h
@@ -0,0 +1,32 @@
+/*
+ * CBMoreAppsBadge.h
+ * Chartboost
+ * 6.0.0
+ *
+ * Copyright 2011 Chartboost. All rights reserved.
+ */
+
+/*!
+ @class CBMoreAppsBadge
+ 
+ @abstract
+ Class for creating a UIVIew that will display the number of applications displayed
+ on the more applications page. It is meant to be placed over a button that will display the more applications page.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface CBMoreAppsBadge : UIView
+
+/*!
+ @abstract
+ Returns a badge view with the number of unviewed applications on the More Applications page.
+ 
+ @return CBMoreAppsBadge a badge view.
+ 
+ @discussion This method returns a customizable badge that by default displays the number of applications displayed
+ on the more applications page. It is meant to be placed over a button that will display the more applications page.
+ */
++ (CBMoreAppsBadge *)moreAppsBadge;
+
+@end
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsButton.h b/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsButton.h
new file mode 100644
index 0000000..4a26850
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBMoreAppsButton.h
@@ -0,0 +1,44 @@
+/*
+ * CBMoreAppsButton.h
+ * Chartboost
+ * 6.0.0
+ *
+ * Copyright 2011 Chartboost. All rights reserved.
+ */
+
+/*!
+ @class CBMoreAppsButton
+ 
+ @abstract
+ Class for creating a UIVIew that will trigger displaying a 
+ Chartboost MoreApps ad when tapped.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface CBMoreAppsButton : UIView
+
+/*!
+ @abstract
+ Returns a button with a custom image that is launches the More Applications page.
+
+ @param customImage the UIImage object to be displayed as the button interface.
+ 
+ @param viewController the view controller object to which the button with be added.
+ 
+ @param location The location for the Chartboost impression type.
+
+ @return CBMoreAppsButton formatted with a custom image and badge icon.
+ 
+ @discussion This method returns a customizable button with update badge that launches the more apps
+ page from an optional presenting view controller object or the main window if nil. The frame of the
+ button is set to the size of the customImage object plus the radius of the badge icon. The position
+ of this object can be adjusted using the center property of the button object after initialization.
+ 
+*/
+
++ (CBMoreAppsButton *)moreAppsButtonWithImage:(UIImage *)customImage
+                           fromViewController:(UIViewController *)viewController
+                                     location:(CBLocation)location;
+
+@end
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h b/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h
new file mode 100644
index 0000000..93df310
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h
@@ -0,0 +1,1093 @@
+/*
+ * Chartboost.h
+ * Chartboost
+ * 6.0.0
+ *
+ * Copyright 2011 Chartboost. All rights reserved.
+ */
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBFramework)
+ 
+ @abstract
+ Used with setFramework:(CBFramework)framework calls to set suffix for
+ wrapper libraries like Unity or Corona.
+ */
+#import <UIKit/UIKit.h>
+typedef NS_ENUM(NSUInteger, CBFramework) {
+    /*! Unity. */
+    CBFrameworkUnity,
+    /*! Corona. */
+    CBFrameworkCorona,
+    /*! Adobe AIR. */
+    CBFrameworkAIR,
+    /*! GameSalad. */
+    CBFrameworkGameSalad,
+    /*! Cordova. */
+    CBFrameworkCordova,
+    /*! CocoonJS. */
+    CBFrameworkCocoonJS,
+    /*! Cocos2d-x. */
+    CBFrameworkCocos2dx,
+    /*! MoPub. */
+    CBFrameworkMoPub,
+    /*! Fyber. */
+    CBFrameworkFyber,
+    /*! Prime31Unreal. */
+    CBFrameworkPrime31Unreal,
+    /*! Weeby. */
+    CBFrameworkWeeby
+};
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBMediation)
+ 
+ @abstract
+ Used with setMediation:(CBMediation)library calls to set mediation library name
+ partners. If you don't see your library here, contact support.
+ */
+typedef NS_ENUM(NSUInteger, CBMediation) {
+    /*! Unknown. Other */
+    CBMediationOther,
+    /*! AdMarvel */
+    CBMediationAdMarvel,
+    /*! Fuse */
+    CBMediationFuse,
+    /*! Fyber */
+    CBMediationFyber,
+    /*! HeyZap */
+    CBMediationHeyZap,
+    /*! MoPub */
+    CBMediationMoPub,
+    /*! Supersonic */
+    CBMediationSupersonic,
+};
+
+
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBLoadError)
+ 
+ @abstract
+ Returned to ChartboostDelegate methods to notify of Chartboost SDK errors.
+ */
+typedef NS_ENUM(NSUInteger, CBLoadError) {
+    /*! Unknown internal error. */
+    CBLoadErrorInternal,
+    /*! Network is currently unavailable. */
+    CBLoadErrorInternetUnavailable,
+    /*! Too many requests are pending for that location.  */
+    CBLoadErrorTooManyConnections,
+    /*! Interstitial loaded with wrong orientation. */
+    CBLoadErrorWrongOrientation,
+    /*! Interstitial disabled, first session. */
+    CBLoadErrorFirstSessionInterstitialsDisabled,
+    /*! Network request failed. */
+    CBLoadErrorNetworkFailure,
+    /*!  No ad received. */
+    CBLoadErrorNoAdFound,
+    /*! Session not started. */
+    CBLoadErrorSessionNotStarted,
+    /*! User manually cancelled the impression. */
+    CBLoadErrorUserCancellation,
+    /*! No location detected. */
+    CBLoadErrorNoLocationFound,
+    /*! Video Prefetching is not finished */
+    CBLoadErrorPrefetchingIncomplete,
+    /*! There is an impression already visible.*/
+    CBLoadErrorImpressionAlreadyVisible
+};
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBClickError)
+ 
+ @abstract
+ Returned to ChartboostDelegate methods to notify of Chartboost SDK errors.
+ */
+typedef NS_ENUM(NSUInteger, CBClickError) {
+    /*! Invalid URI. */
+    CBClickErrorUriInvalid,
+    /*! The device does not know how to open the protocol of the URI  */
+    CBClickErrorUriUnrecognized,
+    /*! User failed to pass the age gate. */
+    CBClickErrorAgeGateFailure,
+    /*! Unknown internal error */
+    CBClickErrorInternal,
+};
+
+/*!
+ @typedef NS_ENUM (NSUInteger, CBStatusBarBehavior)
+ 
+ @abstract
+ Used with setStatusBarBehavior:(CBStatusBarBehavior)statusBarBehavior calls to set how fullscreen ads should
+ behave with regards to the status bar.
+ */
+typedef NS_ENUM(NSUInteger, CBStatusBarBehavior) {
+    /*! Ignore status bar altogether; fullscreen ads will use the space of the status bar. */
+    CBStatusBarBehaviorIgnore,
+    /*! Respect the status bar partially; fullscreen ads will use the space of the status bar but any user interactive buttons will not. */
+    CBStatusBarBehaviorRespectButtons,
+    /*! Respect the status bar fully; fullscreen ads will not use the status bar space. */
+    CBStatusBarBehaviorRespect
+};
+
+/*!
+ @typedef CBLocation
+ 
+ @abstract
+ Defines standard locations to describe where Chartboost SDK features appear in game.
+ 
+ @discussion Standard locations used to describe where Chartboost features show up in your game
+ For best performance, it is highly recommended to use standard locations.
+
+ Benefits include:
+ - Higher eCPMs.
+ - Control of ad targeting and frequency.
+ - Better reporting.
+ */
+typedef NSString * const CBLocation;
+
+/*! "Startup" - Initial startup of game. */
+extern CBLocation const CBLocationStartup;
+/*! "Home Screen" - Home screen the player first sees. */
+extern CBLocation const CBLocationHomeScreen;
+/*! "Main Menu" - Menu that provides game options. */
+extern CBLocation const CBLocationMainMenu;
+/*! "Game Screen" - Game screen where all the magic happens. */
+extern CBLocation const CBLocationGameScreen;
+/*! "Achievements" - Screen with list of achievements in the game. */
+extern CBLocation const CBLocationAchievements;
+/*! "Quests" - Quest, missions or goals screen describing things for a player to do. */
+extern CBLocation const CBLocationQuests;
+/*!  "Pause" - Pause screen. */
+extern CBLocation const CBLocationPause;
+/*! "Level Start" - Start of the level. */
+extern CBLocation const CBLocationLevelStart;
+/*! "Level Complete" - Completion of the level */
+extern CBLocation const CBLocationLevelComplete;
+/*! "Turn Complete" - Finishing a turn in a game. */
+extern CBLocation const CBLocationTurnComplete;
+/*! "IAP Store" - The store where the player pays real money for currency or items. */
+extern CBLocation const CBLocationIAPStore;
+/*! "Item Store" - The store where a player buys virtual goods. */
+extern CBLocation const CBLocationItemStore;
+/*! "Game Over" - The game over screen after a player is finished playing. */
+extern CBLocation const CBLocationGameOver;
+/*! "Leaderboard" - List of leaders in the game. */
+extern CBLocation const CBLocationLeaderBoard;
+/*! "Settings" - Screen where player can change settings such as sound. */
+extern CBLocation const CBLocationSettings;
+/*! "Quit" - Screen displayed right before the player exits a game. */
+extern CBLocation const CBLocationQuit;
+/*! "Default" - Supports legacy applications that only have one "Default" location */
+extern CBLocation const CBLocationDefault;
+
+@protocol ChartboostDelegate;
+
+/*!
+ @class Chartboost
+ 
+ @abstract
+ Provide methods to display and control Chartboost native advertising types.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ */
+@interface Chartboost : NSObject
+
+#pragma mark - Main Chartboost API
+
+/*!
+ @abstract
+ Start Chartboost with required appId, appSignature and delegate.
+
+ @param appId The Chartboost application ID for this application.
+
+ @param appSignature The Chartboost application signature for this application.
+
+ @param delegate The delegate instance to receive Chartboost SDK callbacks.
+
+ @discussion This method must be executed before any other Chartboost SDK methods can be used.
+ Once executed this call will also controll session tracking and background tasks
+ used by Chartboost.
+*/
++ (void)startWithAppId:(NSString*)appId
+          appSignature:(NSString*)appSignature
+              delegate:(id<ChartboostDelegate>)delegate;
+
+/*!
+ @abstract
+ Check to see if any views are visible
+ 
+ @return YES if there is any view visible
+ 
+ @discussion This method can be used to check if any chartboost ad's are visible on the app.
+ */
++ (BOOL)isAnyViewVisible;
+
+/*!
+ @abstract
+ Determine if a locally cached interstitial exists for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if there a locally cached interstitial, and NO if not.
+ 
+ @discussion A return value of YES here indicates that the corresponding
+ showInterstitial:(CBLocation)location method will present without making
+ additional Chartboost API server requests to fetch data to present.
+ */
++ (BOOL)hasInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Present an interstitial for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached interstitial
+ for the given CBLocation and, if found, will present using the locally cached data.
+ If no locally cached data exists the method will attempt to fetch data from the
+ Chartboost API server and present it.  If the Chartboost API server is unavailable
+ or there is no eligible interstitial to present in the given CBLocation this method
+ is a no-op.
+ */
++ (void)showInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Determine if a locally cached "more applications" exists for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if there a locally cached "more applications", and NO if not.
+ 
+ @discussion A return value of YES here indicates that the corresponding
+ showMoreApps:(CBLocation)location method will present without making
+ additional server requests to fetch data to present.
+ */
++ (BOOL)hasMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Present an "more applications" for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached "more applications"
+ for the given CBLocation and, if found, will present using the locally cached data.
+ If no locally cached data exists the method will attempt to fetch data from the
+ Chartboost API server and present it.  If the Chartboost API server is unavailable
+ or there is no eligible "more applications" to present in the given CBLocation this method
+ is a no-op.
+ */
++ (void)showMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Present an "more applications" for the given CBLocation and inside the given UIViewController.
+ 
+ @param viewController The UIViewController to display the "more applications" UI within.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method uses the same implementation logic as showMoreApps:(CBLocation)location 
+ for loading the "more applications" data, but adds an optional viewController parameter. 
+ The viewController object allows the "more applications" page to be presented modally in a specified
+ view hierarchy. If the Chartboost API server is unavailable or there is no eligible "more applications" 
+ to present in the given CBLocation this method is a no-op.
+ */
++ (void)showMoreApps:(UIViewController *)viewController
+            location:(CBLocation)location;
+
+/*!
+ @abstract
+ Determine if a locally cached rewarded video exists for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if there a locally cached rewarded video, and NO if not.
+ 
+ @discussion A return value of YES here indicates that the corresponding
+ showRewardedVideo:(CBLocation)location method will present without making
+ additional Chartboost API server requests to fetch data to present.
+ */
++ (BOOL)hasRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Present a rewarded video for the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached rewarded video
+ for the given CBLocation and, if found, will present it using the locally cached data.
+ If no locally cached data exists the method will attempt to fetch data from the
+ Chartboost API server and present it.  If the Chartboost API server is unavailable
+ or there is no eligible rewarded video to present in the given CBLocation this method
+ is a no-op.
+ */
++ (void)showRewardedVideo:(CBLocation)location;
+
+#pragma mark - Advanced Configuration & Use
+
+/*!
+ @abstract
+ Confirm if an age gate passed or failed. When specified Chartboost will wait for 
+ this call before showing the IOS App Store.
+ 
+ @param pass The result of successfully passing the age confirmation.
+ 
+ @discussion If you have configured your Chartboost experience to use the age gate feature
+ then this method must be executed after the user has confirmed their age.  The Chartboost SDK
+ will halt until this is done.
+ */
++ (void)didPassAgeGate:(BOOL)pass;
+
+/*!
+ @abstract
+ Opens a "deep link" URL for a Chartboost Custom Scheme.
+ 
+ @param url The URL to open.
+ 
+ @param sourceApplication The application that originated the action.
+ 
+ @return YES if Chartboost SDK is capable of handling the URL and does so, and NO if not.
+ 
+ @discussion If you have configured a custom scheme and provided "deep link" URLs that the
+ Chartboost SDK is capable of handling you should use this method in your ApplicationDelegate
+ class methods that handle custom URL schemes.
+ */
++ (BOOL)handleOpenURL:(NSURL *)url
+    sourceApplication:(NSString *)sourceApplication;
+
+/*!
+ @abstract
+ Opens a "deep link" URL for a Chartboost Custom Scheme.
+ 
+ @param url The URL to open.
+ 
+ @param sourceApplication The application that originated the action.
+ 
+ @param annotation The provided annotation.
+ 
+ @return YES if Chartboost SDK is capable of handling the URL and does so, and NO if not.
+ 
+ @discussion If you have configured a custom scheme and provided "deep link" URLs that the
+ Chartboost SDK is capable of handling you should use this method in your ApplicationDelegate
+ class methods that handle custom URL schemes.
+ */
++ (BOOL)handleOpenURL:(NSURL *)url
+    sourceApplication:(NSString *)sourceApplication
+           annotation:(id)annotation;
+
+/*!
+ @abstract
+ Set a custom identifier to send in the POST body for all Chartboost API server requests.
+ 
+ @param customId The identifier to send with all Chartboost API server requests.
+ 
+ @discussion Use this method to set a custom identifier that can be used later in the Chartboost
+ dashboard to group information by.
+ */
++ (void)setCustomId:(NSString *)customId;
+
+/*!
+ @abstract
+ Get the current custom identifier being sent in the POST body for all Chartboost API server requests.
+ 
+ @return The identifier being sent with all Chartboost API server requests.
+ 
+ @discussion Use this method to get the custom identifier that can be used later in the Chartboost
+ dashboard to group information by.
+ */
++ (NSString *)getCustomId;
+
+/*!
+ @abstract
+ Set a custom version to append to the POST body of every request. This is useful for analytics and provides chartboost with important information.
+ example setFramework:Unity withVersion:4.6, setFrameworkVersion:5.2.1
+ 
+ @param frameworkVersion The version sent as a string.
+ 
+ @discussion This is an internal method used via Chartboost's Unity and Corona SDKs
+ to track their usage.
+ */
++ (void)setFrameworkVersion:(NSString*)frameworkVersion;
+    
+/*!
+ @abstract
+ Set a custom framework suffix to append to the POST headers field.
+ 
+ @param framework The suffx to send with all Chartboost API server requests.
+ 
+ @discussion This is an internal method used via Chartboost's Unity and Corona SDKs
+ to track their usage.
+ */
++ (void)setFramework:(CBFramework)framework;
+
+/*!
+ @abstract
+ Set a custom framework suffix to append to the POST headers field.
+example setFramework:Unity withVersion:4.6, setFrameworkVersion:5.2.1
+ 
+ @param framework The suffix to send with all Chartbooost API server requets.
+ @param version The platform version used for analytics. Example Unity should set Application.unityVersion
+ 
+ @discussion This is an internal method used via Chartboost's Unity and Corona SDKs
+ to track their usage.
+ */
++ (void)setFramework:(CBFramework)framework withVersion:(NSString *)version;
+
+/*!
+ @abstract
+ Set a custom mediation library to append to the POST body of every request.
+ example setMediation:CBMediationMoPub withVersion:@"3.8.0"
+ 
+ @param library The constant for the name of the mediation library.
+ @param libraryVersion The version sent as a string.
+ 
+ @discussion This is an internal method used by mediation partners to track their usage.
+ */
++ (void)setMediation:(CBMediation)library withVersion:(NSString*)libraryVersion;
+
+/*!
+ @abstract
+ Decide if Chartboost SDK should show interstitials in the first session.
+ 
+ @param shouldRequest YES if allowed to show interstitials in first session, NO otherwise.
+ 
+ @discussion Set to control if Chartboost SDK can show interstitials in the first session.
+ The session count is controlled via the startWithAppId:appSignature:delegate: method in the Chartboost
+ class.
+ 
+ Default is YES.
+ */
++ (void)setShouldRequestInterstitialsInFirstSession:(BOOL)shouldRequest;
+
+/*!
+ @abstract
+ Decide if Chartboost SDK should block for an age gate.
+ 
+ @param shouldPause YES if Chartboost should pause for an age gate, NO otherwise.
+ 
+ @discussion Set to control if Chartboost SDK should block for an age gate.
+ 
+ Default is NO.
+ */
++ (void)setShouldPauseClickForConfirmation:(BOOL)shouldPause;
+
+/*!
+ @abstract
+ Decide if Chartboost SDK should show a loading view while preparing to display the
+ "more applications" UI.
+ 
+ @param shouldDisplay YES if Chartboost should display a loading view, NO otherwise.
+ 
+ @discussion Set to control if Chartboost SDK should show a loading view while
+ preparing to display the "more applications" UI.
+ 
+ Default is NO.
+ */
++ (void)setShouldDisplayLoadingViewForMoreApps:(BOOL)shouldDisplay;
+
+/*!
+ @abstract
+ Decide if Chartboost SDKK will attempt to fetch videos from the Chartboost API servers.
+ 
+ @param shouldPrefetch YES if Chartboost should prefetch video content, NO otherwise.
+ 
+ @discussion Set to control if Chartboost SDK control if videos should be prefetched.
+ 
+ Default is YES.
+ */
++ (void)setShouldPrefetchVideoContent:(BOOL)shouldPrefetch;
+
+#pragma mark - Advanced Caching
+
+/*!
+ @abstract
+ Cache an interstitial at the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached interstitial
+ for the given CBLocation and, if found, will do nothing. If no locally cached data exists 
+ the method will attempt to fetch data from the Chartboost API server.
+ */
++ (void)cacheInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Cache an "more applications" at the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached "more applications"
+ for the given CBLocation and, if found, will do nothing. If no locally cached data exists
+ the method will attempt to fetch data from the Chartboost API server.
+ */
++ (void)cacheMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Cache a rewarded video at the given CBLocation.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion This method will first check if there is a locally cached rewarded video
+ for the given CBLocation and, if found, will do nothing. If no locally cached data exists
+ the method will attempt to fetch data from the Chartboost API server.
+ */
++ (void)cacheRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Set to enable and disable the auto cache feature (Enabled by default).
+ 
+ @param shouldCache The param to enable or disable auto caching.
+ 
+ @discussion If set to YES the Chartboost SDK will automatically attempt to cache an impression
+ once one has been consumed via a "show" call.  If set to NO, it is the responsibility of the
+ developer to manage the caching behavior of Chartboost impressions.
+ */
++ (void)setAutoCacheAds:(BOOL)shouldCache;
+
+/*!
+ @abstract
+ Get the current auto cache behavior (Enabled by default).
+ 
+ @return YES if the auto cache is enabled, NO if it is not.
+ 
+ @discussion If set to YES the Chartboost SDK will automatically attempt to cache an impression
+ once one has been consumed via a "show" call.  If set to NO, it is the responsibility of the
+ developer to manage the caching behavior of Chartboost impressions.
+ */
++ (BOOL)getAutoCacheAds;
+
+/*!
+ @abstract
+ Close any visible chartboost impressions (interstitials, more apps, rewarded video, etc..) and the loading view (if visible)
+ 
+ @discussion There are some use cases when this functionality is useful.
+ */
++ (void)closeImpression;
+
+/*!
+ @abstract
+ Set to control how the fullscreen ad units should interact with the status bar. (CBStatusBarBehaviorIgnore by default).
+ 
+ @param statusBarBehavior The param to set if fullscreen video should respect the status bar.
+ 
+ @discussion See the enum value comments for descriptions on the values and their behavior.  Only use this feature if your
+ application has the status bar enabled.
+ */
++ (void)setStatusBarBehavior:(CBStatusBarBehavior)statusBarBehavior;
+
+@end
+
+/*!
+ @protocol ChartboostDelegate
+ 
+ @abstract
+ Provide methods and callbacks to receive notifications of when the Chartboost SDK
+ has taken specific actions or to more finely control the Chartboost SDK.
+ 
+ @discussion For more information on integrating and using the Chartboost SDK
+ please visit our help site documentation at https://help.chartboost.com
+ 
+ All of the delegate methods are optional.
+ */
+@protocol ChartboostDelegate <NSObject>
+
+@optional
+
+#pragma mark - Interstitial Delegate
+
+/*!
+ @abstract
+ Called before requesting an interstitial via the Chartboost API server.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if execution should proceed, NO if not.
+ 
+ @discussion Implement to control if the Charboost SDK should fetch data from
+ the Chartboost API servers for the given CBLocation.  This is evaluated
+ if the showInterstitial:(CBLocation) or cacheInterstitial:(CBLocation)location
+ are called.  If YES is returned the operation will proceed, if NO, then the
+ operation is treated as a no-op.
+ 
+ Default return is YES.
+ */
+- (BOOL)shouldRequestInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called before an interstitial will be displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if execution should proceed, NO if not.
+ 
+ @discussion Implement to control if the Charboost SDK should display an interstitial
+ for the given CBLocation.  This is evaluated if the showInterstitial:(CBLocation)
+ is called.  If YES is returned the operation will proceed, if NO, then the
+ operation is treated as a no-op and nothing is displayed.
+ 
+ Default return is YES.
+ */
+- (BOOL)shouldDisplayInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an interstitial has been displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an interstitial has
+ been displayed on the screen for a given CBLocation.
+ */
+- (void)didDisplayInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an interstitial has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an interstitial has been loaded from the Chartboost API
+ servers and cached locally for a given CBLocation.
+ */
+- (void)didCacheInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an interstitial has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when an interstitial has attempted to load from the Chartboost API
+ servers but failed for a given CBLocation.
+ */
+- (void)didFailToLoadInterstitial:(CBLocation)location
+                        withError:(CBLoadError)error;
+
+/*!
+ @abstract
+ Called after a click is registered, but the user is not fowrwarded to the IOS App Store.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when a click is registered, but the user is not fowrwarded 
+ to the IOS App Store for a given CBLocation.
+ */
+- (void)didFailToRecordClick:(CBLocation)location
+                   withError:(CBClickError)error;
+
+/*!
+ @abstract
+ Called after an interstitial has been dismissed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an interstitial has been dismissed for a given CBLocation.
+ "Dismissal" is defined as any action that removed the interstitial UI such as a click or close.
+ */
+- (void)didDismissInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an interstitial has been closed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an interstitial has been closed for a given CBLocation.
+ "Closed" is defined as clicking the close interface for the interstitial.
+ */
+- (void)didCloseInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an interstitial has been clicked.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an interstitial has been click for a given CBLocation.
+ "Clicked" is defined as clicking the creative interface for the interstitial.
+ */
+- (void)didClickInterstitial:(CBLocation)location;
+
+/*!
+ @abstract
+ Called before an "more applications" will be displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if execution should proceed, NO if not.
+ 
+ @discussion Implement to control if the Charboost SDK should display an "more applications"
+ for the given CBLocation.  This is evaluated if the showMoreApps:(CBLocation)
+ is called.  If YES is returned the operation will proceed, if NO, then the
+ operation is treated as a no-op and nothing is displayed.
+ 
+ Default return is YES.
+ */
+- (BOOL)shouldDisplayMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has been displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an "more applications" has
+ been displayed on the screen for a given CBLocation.
+ */
+- (void)didDisplayMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an "more applications" has been loaded from the Chartboost API
+ servers and cached locally for a given CBLocation.
+ */
+- (void)didCacheMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has been dismissed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an "more applications" has been dismissed for a given CBLocation.
+ "Dismissal" is defined as any action that removed the "more applications" UI such as a click or close.
+ */
+- (void)didDismissMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has been closed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an "more applications" has been closed for a given CBLocation.
+ "Closed" is defined as clicking the close interface for the "more applications".
+ */
+- (void)didCloseMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has been clicked.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an "more applications" has been clicked for a given CBLocation.
+ "Clicked" is defined as clicking the creative interface for the "more applications".
+ */
+- (void)didClickMoreApps:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after an "more applications" has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when an "more applications" has attempted to load from the Chartboost API
+ servers but failed for a given CBLocation.
+ */
+- (void)didFailToLoadMoreApps:(CBLocation)location
+                    withError:(CBLoadError)error;
+
+#pragma mark - Video Delegate
+
+/*!
+ @abstract
+ Called after videos have been successfully prefetched.
+ 
+ @discussion Implement to be notified of when the prefetching process has finished successfully.
+ */
+
+- (void)didPrefetchVideos;
+
+#pragma mark - Rewarded Video Delegate
+
+/*!
+ @abstract
+ Called before a rewarded video will be displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @return YES if execution should proceed, NO if not.
+ 
+ @discussion Implement to control if the Charboost SDK should display a rewarded video
+ for the given CBLocation.  This is evaluated if the showRewardedVideo:(CBLocation)
+ is called.  If YES is returned the operation will proceed, if NO, then the
+ operation is treated as a no-op and nothing is displayed.
+ 
+ Default return is YES.
+ */
+- (BOOL)shouldDisplayRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has been displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has
+ been displayed on the screen for a given CBLocation.
+ */
+- (void)didDisplayRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has been loaded from the Chartboost API
+ servers and cached locally for a given CBLocation.
+ */
+- (void)didCacheRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when an rewarded video has attempted to load from the Chartboost API
+ servers but failed for a given CBLocation.
+ */
+- (void)didFailToLoadRewardedVideo:(CBLocation)location
+                         withError:(CBLoadError)error;
+
+/*!
+ @abstract
+ Called after a rewarded video has been dismissed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has been dismissed for a given CBLocation.
+ "Dismissal" is defined as any action that removed the rewarded video UI such as a click or close.
+ */
+- (void)didDismissRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has been closed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has been closed for a given CBLocation.
+ "Closed" is defined as clicking the close interface for the rewarded video.
+ */
+- (void)didCloseRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has been clicked.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has been click for a given CBLocation.
+ "Clicked" is defined as clicking the creative interface for the rewarded video.
+ */
+- (void)didClickRewardedVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a rewarded video has been viewed completely and user is eligible for reward.
+ 
+ @param reward The reward for watching the video.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a rewarded video has been viewed completely and user is eligible for reward.
+ */
+- (void)didCompleteRewardedVideo:(CBLocation)location
+                      withReward:(int)reward;
+
+#pragma mark - InPlay Delegate
+
+/*!
+ @abstract
+ Called after an InPlay object has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when an InPlay object has been loaded from the Chartboost API
+ servers and cached locally for a given CBLocation.
+ */
+- (void)didCacheInPlay:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after a InPlay has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when an InPlay has attempted to load from the Chartboost API
+ servers but failed for a given CBLocation.
+ */
+- (void)didFailToLoadInPlay:(CBLocation)location
+                  withError:(CBLoadError)error;
+
+#pragma mark - General Delegate
+
+/*!
+ @abstract
+ Called before a video has been displayed on the screen.
+ 
+ @param location The location for the Chartboost impression type.
+ 
+ @discussion Implement to be notified of when a video will
+ be displayed on the screen for a given CBLocation.  You can then do things like mute
+ effects and sounds.
+ */
+- (void)willDisplayVideo:(CBLocation)location;
+
+/*!
+ @abstract
+ Called after the App Store sheet is dismissed, when displaying the embedded app sheet.
+ 
+ @discussion Implement to be notified of when the App Store sheet is dismissed.
+ */
+- (void)didCompleteAppStoreSheetFlow;
+
+/*!
+ @abstract
+ Called if Chartboost SDK pauses click actions awaiting confirmation from the user.
+ 
+ @discussion Use this method to display any gating you would like to prompt the user for input.
+ Once confirmed call didPassAgeGate:(BOOL)pass to continue execution.
+ */
+- (void)didPauseClickForConfirmation;
+
+#pragma mark - Deprecated Delegate
+
+/*!
+ @abstract
+ Called before an "more applications" will be displayed on the screen.
+ 
+ @return YES if execution should proceed, NO if not.
+ 
+ @discussion Implement to control if the Charboost SDK should display an "more applications". 
+ This is evaluated if the showMoreApps:(CBLocation) is called.  If YES is returned the operation will proceed, if NO, then the
+ operation is treated as a no-op and nothing is displayed.
+ 
+ Default return is YES.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (BOOL)shouldDisplayMoreApps __attribute__((deprecated("As of version 4.5, use shouldDisplayMoreApps:(CBLocation)location")));;
+
+/*!
+ @abstract
+ Called after an "more applications" has been displayed on the screen.
+ 
+ @discussion Implement to be notified of when an "more applications" has
+ been displayed on the screen.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didDisplayMoreApps __attribute__((deprecated("As of version 4.5, use didDisplayMoreApps:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an "more applications" has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @discussion Implement to be notified of when an "more applications" has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didCacheMoreApps __attribute__((deprecated("As of version 4.5, use didCacheMoreApps:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an "more applications" has been dismissed.
+ 
+ @discussion Implement to be notified of when an "more applications" has been dismissed.
+ "Dismissal" is defined as any action that removed the "more applications" UI such as a click or close.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didDismissMoreApps __attribute__((deprecated("As of version 4.5, use didDismissMoreApps:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an "more applications" has been closed.
+ 
+ @discussion Implement to be notified of when an "more applications" has been closed.
+ "Closed" is defined as clicking the close interface for the "more applications".
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didCloseMoreApps __attribute__((deprecated("As of version 4.5, use didCloseMoreApps:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an "more applications" has been clicked.
+ 
+ @discussion Implement to be notified of when an "more applications" has been clicked.
+ "Clicked" is defined as clicking the creative interface for the "more applications".
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didClickMoreApps __attribute__((deprecated("As of version 4.5, use didClickMoreApps:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an "more applications" has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @param error The reason for the error defined via a CBLoadError.
+ 
+ @discussion Implement to be notified of when an "more applications" has attempted to load from the Chartboost API
+ servers but failed.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didFailToLoadMoreApps:(CBLoadError)error __attribute__((deprecated("As of version 4.5, use didFailToLoadMoreApps:(CBLoadError)error forLocation:(CBLocation)location")));
+
+/*!
+ @abstract
+ Called after an InPlay object has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @discussion Implement to be notified of when an InPlay object has been loaded from the Chartboost API
+ servers and cached locally.
+ 
+ @deprecated This method has been deprecated and will be removed in a future version.
+ */
+- (void)didLoadInPlay __attribute__((deprecated("As of version 4.5, use didCacheInPlay:(CBLocation)location")));
+
+
+
+@end
+
+
diff --git a/frameworks/Chartboost.framework/Versions/Current b/frameworks/Chartboost.framework/Versions/Current
new file mode 120000
index 0000000..044dcb9
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/Current
@@ -0,0 +1 @@
+./A
\ No newline at end of file
diff --git a/frameworks/WACbImpl.framework/Headers/WACbImpl.h b/frameworks/WACbImpl.framework/Headers/WACbImpl.h
new file mode 100644
index 0000000..5285bb3
--- /dev/null
+++ b/frameworks/WACbImpl.framework/Headers/WACbImpl.h
@@ -0,0 +1,19 @@
+//
+//  WACbImpl.h
+//  WACbImpl
+//
+//  Created by GHW-T-01 on 16/3/1.
+//  Copyright © 2016年 GHW-T-01. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+//! Project version number for WACbImpl.
+FOUNDATION_EXPORT double WACbImplVersionNumber;
+
+//! Project version string for WACbImpl.
+FOUNDATION_EXPORT const unsigned char WACbImplVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import <WACbImpl/PublicHeader.h>
+
+//time:2016/11/29 15:42
diff --git a/frameworks/WACbImpl.framework/Info.plist b/frameworks/WACbImpl.framework/Info.plist
new file mode 100644
index 0000000..eb23a24
--- /dev/null
+++ b/frameworks/WACbImpl.framework/Info.plist
Binary files differ
diff --git a/frameworks/WACbImpl.framework/Modules/module.modulemap b/frameworks/WACbImpl.framework/Modules/module.modulemap
new file mode 100644
index 0000000..19a39ed
--- /dev/null
+++ b/frameworks/WACbImpl.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module WACbImpl {
+  umbrella header "WACbImpl.h"
+
+  export *
+  module * { export * }
+}
diff --git a/frameworks/WACbImpl.framework/WACbImpl b/frameworks/WACbImpl.framework/WACbImpl
new file mode 100644
index 0000000..b69fb75
--- /dev/null
+++ b/frameworks/WACbImpl.framework/WACbImpl
Binary files differ
diff --git a/frameworks/WACbImpl.framework/_CodeSignature/CodeDirectory b/frameworks/WACbImpl.framework/_CodeSignature/CodeDirectory
new file mode 100644
index 0000000..3537884
--- /dev/null
+++ b/frameworks/WACbImpl.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/frameworks/WACbImpl.framework/_CodeSignature/CodeRequirements b/frameworks/WACbImpl.framework/_CodeSignature/CodeRequirements
new file mode 100644
index 0000000..6fdd7b7
--- /dev/null
+++ b/frameworks/WACbImpl.framework/_CodeSignature/CodeRequirements
Binary files differ
diff --git a/frameworks/WACbImpl.framework/_CodeSignature/CodeResources b/frameworks/WACbImpl.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..7bae452
--- /dev/null
+++ b/frameworks/WACbImpl.framework/_CodeSignature/CodeResources
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>Headers/WACbImpl.h</key>
+		<data>
+		Vhyy7TcaGp9T9vLaVORcP5pq/HE=
+		</data>
+		<key>Info.plist</key>
+		<data>
+		jRPLAknVgrZXBZwI6Bpqkenpia0=
+		</data>
+		<key>Modules/module.modulemap</key>
+		<data>
+		2gN7CdvBiOyJnKFJchqagAAgn54=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>Headers/WACbImpl.h</key>
+		<data>
+		Vhyy7TcaGp9T9vLaVORcP5pq/HE=
+		</data>
+		<key>Modules/module.modulemap</key>
+		<data>
+		2gN7CdvBiOyJnKFJchqagAAgn54=
+		</data>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^[^/]+$</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>
diff --git a/frameworks/WACbImpl.framework/_CodeSignature/CodeSignature b/frameworks/WACbImpl.framework/_CodeSignature/CodeSignature
new file mode 100644
index 0000000..3681a01
--- /dev/null
+++ b/frameworks/WACbImpl.framework/_CodeSignature/CodeSignature
Binary files differ

--
Gitblit v1.8.0