From 207fead0b75994b11c48c185a703f07220c3a2ee Mon Sep 17 00:00:00 2001
From: lpw <pengwei.li@gamehollywood.com>
Date: Tue, 26 Jan 2021 09:41:41 +0800
Subject: [PATCH] 3.9.2

---
 config/wa_sdk_impl_config_chartboost.xml                               |    2 
 frameworks/Chartboost.framework/Versions/A/Chartboost                  |    0 
 frameworks/WACbImpl.framework/WACbImpl                                 |    0 
 frameworks/WACbImpl.framework/Info.plist                               |    0 
 WACbImpl.podspec                                                       |    2 
 frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h        |   75 ++++++++++----
 frameworks/Chartboost.framework/Versions/A/Headers/CHBRewarded.h       |    8 +
 frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h          |    2 
 frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h       |   15 ++-
 frameworks/Chartboost.framework/Versions/A/Headers/CHBAdDelegate.h     |   18 +++
 frameworks/WACbImpl.framework/Headers/WACbImpl.h                       |    2 
 WACbImpl/3.9.2/WACbImpl.podspec                                        |   26 +++++
 frameworks/Chartboost.framework/Versions/A/Headers/CHBBanner.h         |    2 
 frameworks/Chartboost.framework/Versions/A/Headers/CHBDataUseConsent.h |  113 ++++++++++++++++++++++
 frameworks/Chartboost.framework/Versions/A/Headers/CHBInterstitial.h   |   18 ++-
 15 files changed, 239 insertions(+), 44 deletions(-)

diff --git a/WACbImpl.podspec b/WACbImpl.podspec
index 3604e06..200e108 100644
--- a/WACbImpl.podspec
+++ b/WACbImpl.podspec
@@ -9,7 +9,7 @@
 Pod::Spec.new do |s|
 
 s.name = 'WACbImpl'
-s.version = '3.8.4'
+s.version = '3.9.2'
 s.summary = 'WACbImpl framework in production environment.'
 s.license = 'MIT'
 s.author = { "Wuyx" => "wuyixin_gh@gamehollywood.com" }
diff --git a/WACbImpl/3.9.2/WACbImpl.podspec b/WACbImpl/3.9.2/WACbImpl.podspec
new file mode 100644
index 0000000..200e108
--- /dev/null
+++ b/WACbImpl/3.9.2/WACbImpl.podspec
@@ -0,0 +1,26 @@
+#
+#  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.9.2'
+s.summary = 'WACbImpl framework in production environment.'
+s.license = 'MIT'
+s.author = { "Wuyx" => "wuyixin_gh@gamehollywood.com" }
+s.homepage = 'http://repo.wingsdk.cn:8082/summary/WACbImpl.git'
+s.source = { :git => "http://admin@repo.wingsdk.cn: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.frameworks = 'Webkit'
+s.requires_arc = true
+s.dependency 'WASdkIntf'
+s.dependency 'WASdkImpl'
+end
diff --git a/config/wa_sdk_impl_config_chartboost.xml b/config/wa_sdk_impl_config_chartboost.xml
index 9dbd991..b77591d 100644
--- a/config/wa_sdk_impl_config_chartboost.xml
+++ b/config/wa_sdk_impl_config_chartboost.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <config>
-	<version val="CB3.8.4"/>
+	<version val="CB3.9.2"/>
     <comps>
         <!-- 数据收集模块 -->
         <comp module="TRA" plaf="CHARTBOOST" mandatory="YES" value="WACBTrack" desc="CHARTBOOST数据统计"/>
diff --git a/frameworks/Chartboost.framework/Versions/A/Chartboost b/frameworks/Chartboost.framework/Versions/A/Chartboost
index e95fd71..a2679ff 100644
--- a/frameworks/Chartboost.framework/Versions/A/Chartboost
+++ 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
index e37459b..f84114c 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBAnalytics.h
@@ -64,7 +64,8 @@
              productDescription:(NSString *)productDescription
                    productPrice:(NSDecimalNumber *)productPrice
                 productCurrency:(NSString *)productCurrency
-              productIdentifier:(NSString *)productIdentifier;
+              productIdentifier:(NSString *)productIdentifier
+DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 
 /*!
  @abstract
@@ -90,7 +91,8 @@
                        productDescription:(NSString *)productDescription
                              productPrice:(NSDecimalNumber *)productPrice
                           productCurrency:(NSString *)productCurrency
-                        productIdentifier:(NSString *)productIdentifier;
+                        productIdentifier:(NSString *)productIdentifier
+DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 /*!
  @abstract
  Track an In App Purchase Event.
@@ -103,7 +105,8 @@
  and targeting.
  */
 + (void)trackInAppPurchaseEvent:(NSData *)receipt
-                        product:(SKProduct *)product;
+                        product:(SKProduct *)product
+DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 
 
 /*!
@@ -127,7 +130,8 @@
             eventField:(CBLevelType)eventField
              mainLevel:(NSUInteger)mainLevel
               subLevel:(NSUInteger)subLevel
-           description:(NSString*)description;
+           description:(NSString*)description
+DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 
 /*!
  @abstract
@@ -147,6 +151,7 @@
 + (void)trackLevelInfo:(NSString*)eventLabel
             eventField:(CBLevelType)eventField
              mainLevel:(NSUInteger)mainLevel
-           description:(NSString*)description;
+           description:(NSString*)description
+DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 
 @end
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h b/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h
index a73cf3d..19c789e 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CBInPlay.h
@@ -1,7 +1,7 @@
 /*
  * CBInPlay.h
  * Chartboost
- * 8.1.0
+ * 8.4.0
  *
  * Copyright 2018 Chartboost. All rights reserved.
  */
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CHBAdDelegate.h b/frameworks/Chartboost.framework/Versions/A/Headers/CHBAdDelegate.h
index 3ab197a..f2b37f2 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CHBAdDelegate.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CHBAdDelegate.h
@@ -21,6 +21,10 @@
  @brief The ad related to the event.
  */
 @property (nonatomic, readonly) id<CHBAd> ad;
+/*!
+ @brief A string that uniquely identifies the cached ad, updated when a cache operation ends.
+ */
+@property (nonatomic, readonly, nullable) NSString *adID;
 @end
 
 /*!
@@ -55,6 +59,10 @@
  @brief A CHBAdEvent subclass passed on dismiss-related delegate methods.
  */
 @interface CHBDismissEvent : CHBAdEvent
+/*!
+@brief The error that forced the ad dismissal, or nil if the user (or the ad itself) chose to dismiss the ad.
+*/
+@property (nonatomic, readonly, nullable) NSError *error;
 @end
 
 /*!
@@ -192,7 +200,9 @@
  @brief Called after a showFromViewController: call, either if the ad has been presented and an ad impression logged, or if the operation failed.
  @param event A show event with info related to the ad shown.
  @param error An error specifying the failure reason, or nil if the operation was successful.
- @discussion Implement to be notified of when the ad presentation process has finished. Note that this method may be called more than once if some error occurs after the ad has been successfully shown.
+ @discussion Implement to be notified of when the ad presentation process has finished.
+ This method will be called once for each call to showFromViewController: on an interstitial or rewarded ad.
+ In contrast, this may be called multiple times after showing a banner, either if some error occurs after the ad has been successfully shown or as a result of the banner's automatic content refresh.
  
  A common practice consists of caching an ad here so there's an ad ready for the next time you need to show it.
  Note that this is not necessary for banners with automaticallyRefreshesContent set to YES.
@@ -221,7 +231,7 @@
  
  A typical implementation would look like this:
  @code
- - (BOOL)shouldConfirmClick:(CHBClickEvent *)event confirmationHandler:(void(^)(BOOL))confirmationHandler
+ - (BOOL)shouldConfirmClick:(CHBClickEvent *)event confirmationHandler:(void(^)(BOOL))confirmationHandler {
     if (self.needsClickConfirmation) {
         MyAwesomeAgeGate *ageGate = [[MyAwesomeAgeGate alloc] initWithCompletion:^(BOOL confirmed) {
             [ageGate dismissViewControllerAnimated:YES completion:^{
@@ -289,10 +299,12 @@
  @brief Called after an ad is dismissed.
  @param event A dismiss event with info related to the dismissed ad.
  @discussion Implement to be notified of when an ad is no longer displayed.
+ Note that this method won't get called for ads that failed to be shown. To handle that case implement didShowAd:error:
+ You may use the error property inside the event to know if the dismissal was expected or caused by an error.
  
  A typical implementation would look like this:
  @code
- - (void)didDismissAd:(CHBCacheEvent *)event {
+ - (void)didDismissAd:(CHBDismissEvent *)event {
     // Resume processes paused in willShowAd:
  }
  @endcode
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CHBBanner.h b/frameworks/Chartboost.framework/Versions/A/Headers/CHBBanner.h
index 3a31cce..6380bff 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CHBBanner.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CHBBanner.h
@@ -41,7 +41,7 @@
  The developer should not give the banner view object a frame size different than its CHBBannerSize property.
  If you are using AutoLayout just give the banner an X and Y position constraint and it will be automatically sized.
  
- By default a banner will automatically update its content on its own. This means you only need to call showFromViewController: once and the banner will get a new ads and show them, gracefully handling errors if they occur.
+ By default a banner will automatically update its content on its own. This means you only need to call showFromViewController: once and the banner will get new ads and show them, gracefully handling errors if they occur.
  
  You can create and present as many banners as you want at the same time.
  
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CHBDataUseConsent.h b/frameworks/Chartboost.framework/Versions/A/Headers/CHBDataUseConsent.h
new file mode 100644
index 0000000..7d44958
--- /dev/null
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CHBDataUseConsent.h
@@ -0,0 +1,113 @@
+//
+//  CHBDataUseConsent.h
+//  Chartboost
+//
+//  Copyright 2020 Chartboost. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+@typedef CHBPrivacyStandard
+@brief Constant that identifies a privacy standard to comply to.
+*/
+typedef NSString * CHBPrivacyStandard NS_TYPED_EXTENSIBLE_ENUM;
+/*! @brief GDPR privacy standard identifier */
+FOUNDATION_EXPORT CHBPrivacyStandard const CHBPrivacyStandardGDPR;
+/*! @brief CCPA privacy standard identifier */
+FOUNDATION_EXPORT CHBPrivacyStandard const CHBPrivacyStandardCCPA;
+
+/*!
+@class CHBDataUseConsent
+@brief Abstract class. Subclasses define a data use consent option for a privacy standard.
+Not intended to be used directly, always use a subclass to pass to +[Chartboost addDataUseConsent:] or to cast the result of +[Chartboost dataUseConsentForPrivacyStandard:]
+*/
+@interface CHBDataUseConsent: NSObject
+/*! @brief The identifier for the privacy standard this consent applies to. */
+@property (nonatomic, readonly) CHBPrivacyStandard privacyStandard;
+/*! @brief Use the subclasses initializers to obtain a valid consent instance. */
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+// MARK: - GDPR
+
+/*!
+@typedef NS_ENUM (NSUInteger, CHBGDPRConsent)
+@brief Consent options for GDPR compliance.
+*/
+typedef NS_ENUM(NSUInteger, CHBGDPRConsent) {
+    /*! User does not consent to behavioral targeting in compliance with GDPR. */
+    CHBGDPRConsentNonBehavioral,
+    /*! User consents to behavioral targeting in compliance with GDPR. */
+    CHBGDPRConsentBehavioral
+} NS_SWIFT_NAME(CHBGDPRDataUseConsent.Consent);
+
+/*!
+@class CHBGDPRDataUseConsent
+@brief CHBDataUseConsent subclass for compliance with GDPR.
+*/
+NS_SWIFT_NAME(CHBDataUseConsent.GDPR)
+@interface CHBGDPRDataUseConsent: CHBDataUseConsent
+/*! @brief The GDPR consent option. */
+@property (nonatomic, readonly) CHBGDPRConsent consent;
+/*!
+ @brief Returns a GDPR consent object.
+ @param consent The desired GDPR consent option.
+ */
++ (CHBGDPRDataUseConsent *)gdprConsent:(CHBGDPRConsent)consent NS_SWIFT_NAME(init(_:));
+
+@end
+
+// MARK: - CCPA
+
+/*!
+@typedef NS_ENUM (NSUInteger, CHBCCPAConsent)
+@brief Consent options for CCPA compliance.
+*/
+typedef NS_ENUM(NSUInteger, CHBCCPAConsent) {
+    /*! User does not consent to the sale of his or her personal information in compliance with CCPA. */
+    CHBCCPAConsentOptOutSale,
+    /*! User consents to the sale of his or her personal information in compliance with CCPA. */
+    CHBCCPAConsentOptInSale
+} NS_SWIFT_NAME(CHBCCPADataUseConsent.Consent);
+
+/*!
+@class CHBCCPADataUseConsent
+@brief CHBDataUseConsent subclass for compliance with CCPA.
+*/
+NS_SWIFT_NAME(CHBDataUseConsent.CCPA)
+@interface CHBCCPADataUseConsent: CHBDataUseConsent
+/*! @brief The CCPA consent option. */
+@property (nonatomic, readonly) CHBCCPAConsent consent;
+/*!
+@brief Returns a CCPA consent object.
+@param consent The desired CCPA consent option.
+*/
++ (CHBCCPADataUseConsent *)ccpaConsent:(CHBCCPAConsent)consent NS_SWIFT_NAME(init(_:));
+@end
+
+// MARK: - Custom
+
+/*!
+@class CHBCustomDataUseConsent
+@brief CHBDataUseConsent subclass for compliance with a custom privacy standard.
+*/
+NS_SWIFT_NAME(CHBDataUseConsent.Custom)
+@interface CHBCustomDataUseConsent: CHBDataUseConsent
+/*! @brief The custom consent value. */
+@property (nonatomic, readonly) NSString *consent;
+/*!
+ @brief Returns a custom consent object.
+ @discussion Normally you would use other CHBDataUseConsent subclasses instead, which provide predefined options for current privacy standards.
+ If you decide to use this make sure you pass valid values, as defined in https://answers.chartboost.com/en-us/child_article/ios-privacy-methods
+ @param privacyStandard The desired privacy standard identifier.
+ @param consent The desired consent value.
+*/
++ (CHBCustomDataUseConsent *)customConsentWithPrivacyStandard:(CHBPrivacyStandard)privacyStandard consent:(NSString *)consent NS_SWIFT_NAME(init(privacyStandard:consent:));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CHBInterstitial.h b/frameworks/Chartboost.framework/Versions/A/Headers/CHBInterstitial.h
index eb1f607..69c4006 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CHBInterstitial.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CHBInterstitial.h
@@ -14,7 +14,7 @@
  @protocol CHBInterstitialDelegate
  @brief Interstitial delegate protocol that inherits from CHBAdDelegate.
  @discussion Provides methods to receive notifications related to an interstitial's actions and to control its behavior.
- In a typical integration you would implement willShowAd: and didDismissAd:, pausing and resuming ongoing processes (e.g: gameplay, video) there.
+ In a typical integration you would implement willShowAd:, didShowAd: and didDismissAd:, pausing and resuming ongoing processes (e.g: gameplay, video) there.
  */
 @protocol CHBInterstitialDelegate <CHBDismissableAdDelegate>
 @end
@@ -26,18 +26,18 @@
  
  @discussion To show an interstitial it first needs to be cached. Trying to show an uncached intersitital will always fail, thus it is recommended to always check if the ad is cached first.
  
- You can create and cache as many interstitial as you want, but only one can be presented at the same time.
+ You can create and cache as many interstitial ads as you want, but only one can be presented at the same time.
  
  A basic implementation would look like this:
  @code
  - (void)createAndCacheInterstitial {
-    CHBInterstitial *interstitial = [[CHBInterstitial alloc] initWithLocation:CBLocationDefault delegate:self];
-    [interstitial cache];
+    self.interstitial = [[CHBInterstitial alloc] initWithLocation:CBLocationDefault delegate:self];
+    [self.interstitial cache];
  }
  
  - (void)showInterstitial {
-    if (interstitial.isCached) {
-        [interstitial showFromViewController:self];
+    if (self.interstitial.isCached) {
+        [self.interstitial showFromViewController:self];
     }
  }
  
@@ -53,6 +53,12 @@
     // Pause ongoing processes
  }
  
+ - (void)didShowAd:(CHBShowEvent *)event error:(CHBShowError *)error {
+    if (error) {
+        // Resume paused processes
+    }
+ }
+ 
  - (void)didDismissAd:(CHBDismissEvent *)event {
     // Resume paused processes
  }
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/CHBRewarded.h b/frameworks/Chartboost.framework/Versions/A/Headers/CHBRewarded.h
index 65f14cb..bade011 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/CHBRewarded.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/CHBRewarded.h
@@ -14,7 +14,7 @@
  @protocol CHBRewardedDelegate
  @brief Rewarded delegate protocol that inherits from CHBAdDelegate.
  @discussion Provides methods to receive notifications related to a rewarded ad's actions and to control its behavior.
- In a typical integration you would implement willShowAd: and didDismissAd:, pausing and resuming ongoing processes (e.g: gameplay, video) there.
+ In a typical integration you would implement willShowAd:, didShowAd: and didDismissAd:, pausing and resuming ongoing processes (e.g: gameplay, video) there.
  The method didEarnReward: needs to be implemented in order to be notified when the user earns a reward.
  */
 @protocol CHBRewardedDelegate <CHBDismissableAdDelegate, CHBRewardableAdDelegate>
@@ -53,6 +53,12 @@
  - (void)willShowAd:(CHBShowEvent *)event {
     // Pause ongoing processes
  }
+ 
+ - (void)didShowAd:(CHBShowEvent *)event error:(CHBShowError *)error {
+    if (error) {
+        // Resume paused processes. Note that if showing the ad fails didEarnReward: will not be called.
+    }
+ }
 
  - (void)didDismissAd:(CHBDismissEvent *)event {
     // Resume paused processes
diff --git a/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h b/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h
index ea2483d..93e2886 100644
--- a/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h
+++ b/frameworks/Chartboost.framework/Versions/A/Headers/Chartboost.h
@@ -8,6 +8,7 @@
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
 #import "ChartboostDelegate.h"
+#import "CHBDataUseConsent.h"
 #import "CHBInterstitial.h"
 #import "CHBRewarded.h"
 #import "CHBBanner.h"
@@ -33,6 +34,50 @@
  used by Chartboost.
  */
 + (void)startWithAppId:(NSString*)appId appSignature:(NSString*)appSignature completion:(void (^)(BOOL))completion;
+
+/*!
+ @brief Use to restrict Chartboost's ability to collect personal data from the user.
+ @discussion This method can be called multiple times to set the consent for different privacy standards.
+ If a consent has already been set for a privacy standard, adding a consent object for that standard will overwrite the previous value.
+ 
+ This method should be called before starting the Chartboost SDK with startWithAppId:appSignature:completion: if possible.
+ The added consents are persisted, so you may just call this when the consent status needs to be updated.
+*/
++ (void)addDataUseConsent:(CHBDataUseConsent *)consent NS_SWIFT_NAME(addDataUseConsent(_:));
+
+/*!
+ @brief Clears the previously added consent for the desired privacy standard.
+ @param privacyStandard The privacy standard for which you want to clear the consent.
+ @discussion Chartboost persists the added consents, so you'll need to call this method if you want to withdraw a previously added consent.
+ If no consent was available for the indicated standard nothing will happen.
+*/
++ (void)clearDataUseConsentForPrivacyStandard:(CHBPrivacyStandard)privacyStandard NS_SWIFT_NAME(clearDataUseConsent(for:));
+
+/*!
+ @brief Returns the current consent status for the desired privacy standard.
+ @param privacyStandard The privacy standard for which you want to obtain the consent status.
+ @returns A CHBDataUseConsent subclass (the same one used to set the consent in addDataUseConsent:) or nil if no consent status is currently available.
+ @discussion Use this to check the current consent status, either set by a call to addDataUseConsent: or persisted from a call to the same method on a previous app run. You may need to cast the returned object to the proper CHBDataUseConsent subclass in order to read its consent value.
+ 
+ For example, to check if a consent is not set for GDPR:
+ @code
+ // Obj-C
+ if (![Chartboost dataUseConsentForPrivacyStandard:CHBPrivacyStandardGDPR]) { ... }
+ // Swift
+ if Chartboost.dataUseConsent(for: .GDPR) == nil { ... }
+ @endcode
+ 
+ To check the specific consent status for GDPR:
+ @code
+ // Obj-C
+ CHBGDPRDataUseConsent *gdpr = [Chartboost dataUseConsentForPrivacyStandard:CHBPrivacyStandardGDPR];
+ if (gdpr && gdpr.consent == CHBGDPRConsentNonBehavioral) { ... }
+ // Swift
+ let gdpr = Chartboost.dataUseConsent(for: .GDPR) as? CHBDataUseConsent.GDPR
+ if gdpr?.consent == .nonBehavioral { ... }
+ @endcode
+ */
++ (__kindof CHBDataUseConsent *)dataUseConsentForPrivacyStandard:(CHBPrivacyStandard)privacyStandard NS_SWIFT_NAME(dataUseConsent(for:));
 
 /*!
  @abstract
@@ -86,15 +131,10 @@
 + (void)setChartboostWrapperVersion:(NSString*)chartboostWrapperVersion;
 
 /*!
- @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.
+ @brief Informs Chartboost of which environment it is running on, for tracking purposes.
+ @param framework The framework used, e.g: Unity, Corona, etc.
+ @param version The framework version.
+ @discussion It is preferred that this method is called before starting the Chartboost SDK.
  */
 + (void)setFramework:(CBFramework)framework withVersion:(NSString *)version;
 
@@ -127,23 +167,8 @@
  */
 + (void)setMuted:(BOOL)mute;
 
-/*!
- @abstract
- Set to restrict Chartboost's ability to collect personal data from the device. See CBPIDataUseConsent declaration for details
- Note: This method should be called before starting the Chartboost SDK with startWithAppId:appSignature:delegate.
- @param consent set the consent level
- @discussion Default value is Unknown
- */
-+ (void)setPIDataUseConsent:(CBPIDataUseConsent)consent;
-
-/*!
- @abstract
- Get the current consent setting
- */
-+ (CBPIDataUseConsent)getPIDataUseConsent;
 
 #pragma mark - Deprecated
-+ (void)restrictDataCollection:(BOOL)shouldRestrict __attribute__((deprecated("Use setPIDataUseConsent:(CBPIDataUseConsent)consent instead")));
 + (void)setStatusBarBehavior:(CBStatusBarBehavior)statusBarBehavior __attribute__((deprecated("This method is deprecated and is a no-op")));
 + (void)setMediation:(CBMediation)library withVersion:(NSString*)libraryVersion DEPRECATED_MSG_ATTRIBUTE("Please use setMediation:withLibraryVersion:adapterVersion: instead.");
 + (void)cacheInPlay:(CBLocation)location DEPRECATED_MSG_ATTRIBUTE("This is a deprecated no-op method and will be removed in a future version.");
@@ -166,5 +191,7 @@
 + (void)setAutoCacheAds:(BOOL)shouldCache DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 + (BOOL)getAutoCacheAds DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
 + (void)setMediation:(CBMediation)library withLibraryVersion:(NSString*)libraryVersion adapterVersion:(NSString*)adapterVersion DEPRECATED_MSG_ATTRIBUTE("Please use CHBMediation as specified in Chartboost+Mediation.h instead.");
++ (CBPIDataUseConsent)getPIDataUseConsent DEPRECATED_MSG_ATTRIBUTE("This method is deprecated and will be removed in a future version.");
++ (void)setPIDataUseConsent:(CBPIDataUseConsent)consent DEPRECATED_MSG_ATTRIBUTE("Please use addDataUseConsent: passing a CHBDataUseConsent GDPR object instead.");
 
 @end
diff --git a/frameworks/WACbImpl.framework/Headers/WACbImpl.h b/frameworks/WACbImpl.framework/Headers/WACbImpl.h
index f09881c..b3e4ab5 100644
--- a/frameworks/WACbImpl.framework/Headers/WACbImpl.h
+++ b/frameworks/WACbImpl.framework/Headers/WACbImpl.h
@@ -16,4 +16,4 @@
 
 // In this header, you should import all the public headers of your framework using statements like #import <WACbImpl/PublicHeader.h>
 
-//time:2020/05/20 09:17 ver:3.8.4
+//time:2021/01/20 09:17 ver:3.9.2
diff --git a/frameworks/WACbImpl.framework/Info.plist b/frameworks/WACbImpl.framework/Info.plist
index 8edfc45..704e332 100644
--- a/frameworks/WACbImpl.framework/Info.plist
+++ b/frameworks/WACbImpl.framework/Info.plist
Binary files differ
diff --git a/frameworks/WACbImpl.framework/WACbImpl b/frameworks/WACbImpl.framework/WACbImpl
index 8329426..1d1b3b4 100644
--- a/frameworks/WACbImpl.framework/WACbImpl
+++ b/frameworks/WACbImpl.framework/WACbImpl
Binary files differ

--
Gitblit v1.8.0