This commit is contained in:
jenkins 2023-06-28 08:16:15 -07:00
Родитель 8a0aac2d47
Коммит 031468f5f8
4 изменённых файлов: 30 добавлений и 52 удалений

Просмотреть файл

@ -2,7 +2,7 @@ Pod::Spec.new do |s|
s.authors = 'AppLovin Corporation'
s.name = 'AppLovinMediationTapjoyAdapter'
s.version = '13.0.1.0'
s.version = '13.1.0.0'
s.platform = :ios, '10.0'
s.summary = 'Tapjoy adapter used for mediation with the AppLovin MAX SDK'
s.homepage = "https://github.com/CocoaPods/Specs/search?o=desc&q=#{s.name}&s=indexed"
@ -26,17 +26,9 @@ s.source =
s.vendored_frameworks = "#{s.name}-#{s.version}/#{s.name}.xcframework"
s.dependency 'TapjoySDK', '= 13.0.1'
s.dependency 'TapjoySDK', '= 13.1.0'
s.dependency 'AppLovinSDK'
s.pod_target_xcconfig =
{
'VALID_ARCHS' => 'arm64 arm64e armv7 armv7s x86_64',
'VALID_ARCHS[sdk=iphoneos*]' => 'arm64 arm64e armv7 armv7s',
'VALID_ARCHS[sdk=iphonesimulator*]' => 'arm64 arm64e x86_64',
'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386'
}
s.description = <<-DESC
AppLovin turns mobile into the medium of choice for advertisers.

Просмотреть файл

@ -1,7 +1,14 @@
# Changelog
## 13.1.0.0
* Certified with Tapjoy SDK 13.1.0.
* Remove the `privacySettingForSelector:fromParameters:` function and call privacy methods directly.
* Now requires MAX SDK version 6.14.0 or higher. 
* Fixed potential memory leaks by clearing delegates in `destroy:` method.
## 13.0.1.0
* Certified with Tapjoy SDK 13.0.1.
* Updated minimum Xcode requirement to 14.0.
## 13.0.0.0
* Certified with Tapjoy SDK 13.0.0.

Просмотреть файл

@ -280,7 +280,6 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
VALID_ARCHS = "$(ARCHS_STANDARD)";
};
name = Debug;
};
@ -335,7 +334,6 @@
ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
VALID_ARCHS = "$(ARCHS_STANDARD)";
};
name = Release;
};
@ -349,7 +347,6 @@
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = X8JXXK4FF5;
ENABLE_BITCODE = NO;
EXCLUDED_ARCHS = i386;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"${PODS_ROOT}/TapjoySDK/TapjoySDK_iOS_v12.11.1/Libraries\"/**",
@ -374,7 +371,6 @@
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = X8JXXK4FF5;
ENABLE_BITCODE = NO;
EXCLUDED_ARCHS = i386;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"${PODS_ROOT}/TapjoySDK/TapjoySDK_iOS_v12.11.1/Libraries\"/**",

Просмотреть файл

@ -9,7 +9,7 @@
#import "ALTapjoyMediationAdapter.h"
#import <Tapjoy/Tapjoy.h>
#define ADAPTER_VERSION @"13.0.1.0"
#define ADAPTER_VERSION @"13.1.0.0"
@interface ALTapjoyMediationAdapterInterstitialDelegate : NSObject <TJPlacementDelegate, TJPlacementVideoDelegate>
@property (nonatomic, weak) ALTapjoyMediationAdapter *parentAdapter;
@ -124,7 +124,20 @@
return ADAPTER_VERSION;
}
- (void)destroy {}
- (void)destroy
{
self.interstitialPlacement.delegate = nil;
self.interstitialPlacement.videoDelegate = nil;
self.interstitialPlacement = nil;
self.interstitialDelegate.delegate = nil;
self.interstitialDelegate = nil;
self.rewardedPlacement.delegate = nil;
self.rewardedPlacement.videoDelegate = nil;
self.rewardedPlacement = nil;
self.rewardedDelegate.delegate = nil;
self.rewardedDelegate = nil;
}
- (void)dealloc
{
@ -275,56 +288,26 @@
{
TJPrivacyPolicy *tjPrivacyPolicy = [Tapjoy getPrivacyPolicy];
NSNumber *isAgeRestrictedUser = [self privacySettingForSelector: @selector(isAgeRestrictedUser) fromParameters: parameters];
NSNumber *isAgeRestrictedUser = [parameters isAgeRestrictedUser];
if ( isAgeRestrictedUser )
{
[tjPrivacyPolicy setBelowConsentAge: isAgeRestrictedUser.boolValue];
}
NSNumber *hasUserConsent = [self privacySettingForSelector: @selector(hasUserConsent) fromParameters: parameters];
NSNumber *hasUserConsent = [parameters hasUserConsent];
if ( hasUserConsent )
{
[tjPrivacyPolicy setUserConsent: hasUserConsent.boolValue ? @"1" : @"0"];
}
if ( ALSdk.versionCode >= 61100 )
NSNumber *isDoNotSell = [parameters isDoNotSell];
if ( isDoNotSell )
{
NSNumber *isDoNotSell = [self privacySettingForSelector: @selector(isDoNotSell) fromParameters: parameters];
if ( isDoNotSell )
{
[tjPrivacyPolicy setUSPrivacy: isDoNotSell.boolValue ? @"1YY-" : @"1YN-"];
}
else
{
[tjPrivacyPolicy setUSPrivacy: @"1---"];
}
[tjPrivacyPolicy setUSPrivacy: isDoNotSell.boolValue ? @"1YY-" : @"1YN-"];
}
}
- (nullable NSNumber *)privacySettingForSelector:(SEL)selector fromParameters:(id<MAAdapterParameters>)parameters
{
// Use reflection because compiled adapters have trouble fetching `BOOL` from old SDKs and `NSNumber` from new SDKs (above 6.14.0)
NSMethodSignature *signature = [[parameters class] instanceMethodSignatureForSelector: selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature: signature];
[invocation setSelector: selector];
[invocation setTarget: parameters];
[invocation invoke];
// Privacy parameters return nullable `NSNumber` on newer SDKs
if ( ALSdk.versionCode >= 6140000 )
{
NSNumber *__unsafe_unretained value;
[invocation getReturnValue: &value];
return value;
}
// Privacy parameters return BOOL on older SDKs
else
{
BOOL rawValue;
[invocation getReturnValue: &rawValue];
return @(rawValue);
[tjPrivacyPolicy setUSPrivacy: @"1---"];
}
}