feat(integration): 添加 AppLovin SDK 集成管理功能

- 实现 AppLovinIntegrationManagerUtils 版本比较工具类
- 添加 AppLovinPackageManager 处理 UPM 和 Assets 包管理
- 实现 AppLovinPluginMigrationHelper 插件迁移辅助功能
- 添加 AppLovinUpmManifest 管理 UPM 清单文件操作
- 支持 mediation adapter 的版本检测和安装管理
- 实现重复适配器检测和删除功能
This commit is contained in:
2026-01-20 19:01:21 +08:00
parent 4da1b3290e
commit 5b3dfd98c2
76 changed files with 3768 additions and 3668 deletions

View File

@@ -8,12 +8,13 @@
#import "MAUnityAdManager.h"
#define VERSION @"7.0.0"
#define VERSION @"8.5.1"
#define NSSTRING(_X) ( (_X != NULL) ? [NSString stringWithCString: _X encoding: NSStringEncodingConversionAllowLossy].al_stringByTrimmingWhitespace : nil)
@interface NSString (ALUtils)
@property (nonatomic, copy, readonly) NSString *al_stringByTrimmingWhitespace;
@property (assign, readonly, getter=al_isValidString) BOOL al_validString;
- (BOOL)al_isEqualToStringIgnoringCase:(nullable NSString *)otherString;
@end
@interface ALSdkInitializationConfigurationBuilder (ALUtils)
@@ -35,11 +36,13 @@ extern "C"
static bool _isSdkInitialized = false;
static bool _initializeSdkCalled = false;
static bool _disableAllLogs = false;
// Helper method to create C string copy
static const char * cStringCopy(NSString *string);
// Helper method to log errors
void logUninitializedAccessError(const char *callingMethod);
void max_unity_log_uninitialized_access_error(const char *callingMethod);
void max_unity_log_error(NSString *message);
ALSdk *getSdk()
{
@@ -72,6 +75,11 @@ extern "C"
return _initConfigurationBuilder;
}
bool max_unity_should_disable_all_logs()
{
return _disableAllLogs;
}
int getConsentStatusValue(NSNumber *consentStatus)
{
if ( consentStatus )
@@ -182,13 +190,14 @@ extern "C"
NSArray<MAMediatedNetworkInfo *> *availableMediatedNetworks = [getSdk() availableMediatedNetworks];
// Create array of serialized network strings
NSMutableArray<NSDictionary<NSString *, NSString *> *> *serializedNetworks = [NSMutableArray arrayWithCapacity: availableMediatedNetworks.count];
NSMutableArray<NSDictionary<NSString *, id> *> *serializedNetworks = [NSMutableArray arrayWithCapacity: availableMediatedNetworks.count];
for ( MAMediatedNetworkInfo *mediatedNetwork in availableMediatedNetworks )
{
NSDictionary<NSString *, NSString *> *mediatedNetworkDictionary = @{@"name" : mediatedNetwork.name,
@"adapterClassName" : mediatedNetwork.adapterClassName,
@"adapterVersion" : mediatedNetwork.adapterVersion,
@"sdkVersion" : mediatedNetwork.sdkVersion};
NSDictionary<NSString *, id> *mediatedNetworkDictionary = @{@"name" : mediatedNetwork.name,
@"adapterClassName" : mediatedNetwork.adapterClassName,
@"adapterVersion" : mediatedNetwork.adapterVersion,
@"sdkVersion" : mediatedNetwork.sdkVersion,
@"initializationStatus" : @(mediatedNetwork.initializationStatus)};
[serializedNetworks addObject: mediatedNetworkDictionary];
}
@@ -200,7 +209,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
NSLog(@"[%@] Failed to show mediation debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG);
max_unity_log_error(@"Failed to show mediation debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!");
return;
}
@@ -211,25 +220,13 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
NSLog(@"[%@] Failed to show creative debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG);
max_unity_log_error(@"Failed to show creative debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!");
return;
}
[getSdk() showCreativeDebugger];
}
void _MaxShowConsentDialog()
{
NSLog(@"[%@] Failed to show consent dialog - Unavailable on iOS, please use the consent flow: https://developers.applovin.com/en/unity/overview/terms-and-privacy-policy-flow", TAG);
}
int _MaxConsentDialogState()
{
if ( !_isSdkInitialized ) return ALConsentDialogStateUnknown;
return (int) getSdk().configuration.consentDialogState;
}
void _MaxSetUserId(const char *userId)
{
getSdk().settings.userIdentifier = NSSTRING(userId);
@@ -239,7 +236,7 @@ extern "C"
{
if ( _initializeSdkCalled )
{
NSLog(@"[%@] Segment collection must be set before MAX SDK is initialized", TAG);
max_unity_log_error(@"Segment collection must be set before MAX SDK is initialized");
return;
}
@@ -250,7 +247,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxGetSdkConfiguration");
max_unity_log_uninitialized_access_error("_MaxGetSdkConfiguration");
return cStringCopy(@"");
}
@@ -296,33 +293,33 @@ extern "C"
return [ALPrivacySettings isDoNotSellSet];
}
void _MaxCreateBanner(const char *adUnitIdentifier, const char *bannerPosition)
void _MaxCreateBanner(const char *adUnitIdentifier, const char *bannerPosition, bool isAdaptive)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxCreateBanner");
max_unity_log_uninitialized_access_error("_MaxCreateBanner");
return;
}
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) atPosition: NSSTRING(bannerPosition)];
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) atPosition: NSSTRING(bannerPosition) isAdaptive: isAdaptive];
}
void _MaxCreateBannerXY(const char *adUnitIdentifier, const float x, const float y)
void _MaxCreateBannerXY(const char *adUnitIdentifier, const float x, const float y, bool isAdaptive)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxCreateBannerXY");
max_unity_log_uninitialized_access_error("_MaxCreateBannerXY");
return;
}
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) x: x y: y];
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) x: x y: y isAdaptive: isAdaptive];
}
void _MaxLoadBanner(const char *adUnitIdentifier)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadBanner");
max_unity_log_uninitialized_access_error("_MaxLoadBanner");
return;
}
@@ -333,7 +330,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerBackgroundColor");
max_unity_log_uninitialized_access_error("_MaxSetBannerBackgroundColor");
return;
}
@@ -344,7 +341,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerPlacement");
max_unity_log_uninitialized_access_error("_MaxSetBannerPlacement");
return;
}
@@ -355,7 +352,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxStartBannerAutoRefresh");
max_unity_log_uninitialized_access_error("_MaxStartBannerAutoRefresh");
return;
}
@@ -366,7 +363,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxStopBannerAutoRefresh");
max_unity_log_uninitialized_access_error("_MaxStopBannerAutoRefresh");
return;
}
@@ -377,7 +374,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetBannerExtraParameter");
return;
}
@@ -390,7 +387,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetBannerLocalExtraParameter");
return;
}
@@ -403,7 +400,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetBannerLocalExtraParameter");
return;
}
@@ -417,7 +414,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerCustomData");
max_unity_log_uninitialized_access_error("_MaxSetBannerCustomData");
return;
}
@@ -428,7 +425,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetBannerWidth");
max_unity_log_uninitialized_access_error("_MaxSetBannerWidth");
return;
}
@@ -439,7 +436,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxUpdateBannerPosition");
max_unity_log_uninitialized_access_error("_MaxUpdateBannerPosition");
return;
}
@@ -450,7 +447,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxUpdateBannerPositionXY");
max_unity_log_uninitialized_access_error("_MaxUpdateBannerPositionXY");
return;
}
@@ -461,7 +458,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowBanner");
max_unity_log_uninitialized_access_error("_MaxShowBanner");
return;
}
@@ -472,7 +469,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxDestroyBanner");
max_unity_log_uninitialized_access_error("_MaxDestroyBanner");
return;
}
@@ -483,7 +480,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxHideBanner");
max_unity_log_uninitialized_access_error("_MaxHideBanner");
return;
}
@@ -494,7 +491,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxGetBannerLayout");
max_unity_log_uninitialized_access_error("_MaxGetBannerLayout");
return cStringCopy(@"");
}
@@ -505,7 +502,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxCreateMRec");
max_unity_log_uninitialized_access_error("_MaxCreateMRec");
return;
}
@@ -516,7 +513,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxCreateMRecXY");
max_unity_log_uninitialized_access_error("_MaxCreateMRecXY");
return;
}
@@ -527,7 +524,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadMRec");
max_unity_log_uninitialized_access_error("_MaxLoadMRec");
return;
}
@@ -538,7 +535,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetMRecPlacement");
max_unity_log_uninitialized_access_error("_MaxSetMRecPlacement");
return;
}
@@ -549,7 +546,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxStartMRecAutoRefresh");
max_unity_log_uninitialized_access_error("_MaxStartMRecAutoRefresh");
return;
}
@@ -560,7 +557,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxStopMRecAutoRefresh");
max_unity_log_uninitialized_access_error("_MaxStopMRecAutoRefresh");
return;
}
@@ -571,7 +568,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxUpdateMRecPosition");
max_unity_log_uninitialized_access_error("_MaxUpdateMRecPosition");
return;
}
@@ -582,7 +579,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxUpdateMRecPositionXY");
max_unity_log_uninitialized_access_error("_MaxUpdateMRecPositionXY");
return;
}
@@ -593,7 +590,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowMRec");
max_unity_log_uninitialized_access_error("_MaxShowMRec");
return;
}
@@ -604,7 +601,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxDestroyMRec");
max_unity_log_uninitialized_access_error("_MaxDestroyMRec");
return;
}
@@ -615,7 +612,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxHideMRec");
max_unity_log_uninitialized_access_error("_MaxHideMRec");
return;
}
@@ -626,7 +623,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetMRecExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetMRecExtraParameter");
return;
}
@@ -639,7 +636,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetMRecLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetMRecLocalExtraParameter");
return;
}
@@ -652,7 +649,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetMRecLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetMRecLocalExtraParameter");
return;
}
@@ -666,7 +663,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetMRecCustomData");
max_unity_log_uninitialized_access_error("_MaxSetMRecCustomData");
return;
}
@@ -677,7 +674,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxGetMRecLayout");
max_unity_log_uninitialized_access_error("_MaxGetMRecLayout");
return cStringCopy(@"");
}
@@ -688,7 +685,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadInterstitial");
max_unity_log_uninitialized_access_error("_MaxLoadInterstitial");
return;
}
@@ -699,7 +696,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetInterstitialExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetInterstitialExtraParameter");
return;
}
@@ -712,7 +709,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetInterstitialLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetInterstitialLocalExtraParameter");
return;
}
@@ -725,7 +722,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetInterstitialLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetInterstitialLocalExtraParameter");
return;
}
@@ -739,7 +736,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxIsInterstitialReady");
max_unity_log_uninitialized_access_error("_MaxIsInterstitialReady");
return false;
}
@@ -750,7 +747,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowInterstitial");
max_unity_log_uninitialized_access_error("_MaxShowInterstitial");
return;
}
@@ -761,7 +758,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadAppOpenAd");
max_unity_log_uninitialized_access_error("_MaxLoadAppOpenAd");
return;
}
@@ -772,7 +769,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetAppOpenAdExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdExtraParameter");
return;
}
@@ -785,7 +782,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetAppOpenAdLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdLocalExtraParameter");
return;
}
@@ -798,7 +795,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetAppOpenAdLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdLocalExtraParameter");
return;
}
@@ -812,7 +809,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxIsAppOpenAdReady");
max_unity_log_uninitialized_access_error("_MaxIsAppOpenAdReady");
return false;
}
@@ -823,7 +820,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowAppOpenAd");
max_unity_log_uninitialized_access_error("_MaxShowAppOpenAd");
return;
}
@@ -834,7 +831,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadRewardedAd");
max_unity_log_uninitialized_access_error("_MaxLoadRewardedAd");
return;
}
@@ -845,7 +842,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedAdExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdExtraParameter");
return;
}
@@ -858,7 +855,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedAdLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdLocalExtraParameter");
return;
}
@@ -871,7 +868,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedAdLocalExtraParameter");
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdLocalExtraParameter");
return;
}
@@ -885,7 +882,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxIsRewardedAdReady");
max_unity_log_uninitialized_access_error("_MaxIsRewardedAdReady");
return false;
}
@@ -896,91 +893,18 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowRewardedAd");
max_unity_log_uninitialized_access_error("_MaxShowRewardedAd");
return;
}
[getAdManager() showRewardedAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) placement: NSSTRING(placement) customData: NSSTRING(customData)];
}
void _MaxLoadRewardedInterstitialAd(const char *adUnitIdentifier)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxLoadRewardedInterstitialAd");
return;
}
[getAdManager() loadRewardedInterstitialAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier)];
}
void _MaxSetRewardedInterstitialAdExtraParameter(const char *adUnitIdentifier, const char *key, const char *value)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedInterstitialAdExtraParameter");
return;
}
[getAdManager() setRewardedInterstitialAdExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
key: NSSTRING(key)
value: NSSTRING(value)];
}
void _MaxSetRewardedInterstitialAdLocalExtraParameter(const char *adUnitIdentifier, const char *key, MAUnityRef value)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedInterstitialAdLocalExtraParameter");
return;
}
[getAdManager() setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
key: NSSTRING(key)
value: (__bridge id)value];
}
void _MaxSetRewardedInterstitialAdLocalExtraParameterJSON(const char *adUnitIdentifier, const char *key, const char *json)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxSetRewardedInterstitialAdLocalExtraParameter");
return;
}
id value = getLocalExtraParameterValue(json);
[getAdManager() setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
key: NSSTRING(key)
value: value];
}
bool _MaxIsRewardedInterstitialAdReady(const char *adUnitIdentifier)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxIsRewardedInterstitialAdReady");
return false;
}
return [getAdManager() isRewardedInterstitialAdReadyWithAdUnitIdentifier: NSSTRING(adUnitIdentifier)];
}
void _MaxShowRewardedInterstitialAd(const char *adUnitIdentifier, const char *placement, const char *customData)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowRewardedInterstitialAd");
return;
}
[getAdManager() showRewardedInterstitialAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) placement: NSSTRING(placement) customData: NSSTRING(customData)];
}
void _MaxTrackEvent(const char *event, const char *parameters)
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxTrackEvent");
max_unity_log_uninitialized_access_error("_MaxTrackEvent");
return;
}
@@ -1042,11 +966,6 @@ extern "C"
return [UIScreen.mainScreen nativeScale];
}
const char * _MaxGetAdInfo(const char *adUnitIdentifier)
{
return cStringCopy([getAdManager() adInfoForAdUnitIdentifier: NSSTRING(adUnitIdentifier)]);
}
const char * _MaxGetAdValue(const char *adUnitIdentifier, const char *key)
{
return cStringCopy([getAdManager() adValueForAdUnitIdentifier: NSSTRING(adUnitIdentifier) withKey: NSSTRING(key)]);
@@ -1066,7 +985,7 @@ extern "C"
{
if ( _initializeSdkCalled )
{
NSLog(@"[%@] Test device advertising IDs must be set before MAX SDK is initialized", TAG);
max_unity_log_error(@"Test device advertising IDs must be set before MAX SDK is initialized");
return;
}
@@ -1083,7 +1002,7 @@ extern "C"
{
if ( _initializeSdkCalled )
{
NSLog(@"[%@] Exception handler must be enabled/disabled before MAX SDK is initialized", TAG);
max_unity_log_error(@"Exception handler must be enabled/disabled before MAX SDK is initialized");
return;
}
@@ -1095,12 +1014,19 @@ extern "C"
NSString *stringKey = NSSTRING(key);
if ( ![stringKey al_isValidString] )
{
NSLog(@"[%@] Failed to set extra parameter for nil or empty key: %@", TAG, stringKey);
NSString *message = [NSString stringWithFormat:@"Failed to set extra parameter for nil or empty key: %@", stringKey];
max_unity_log_error(message);
return;
}
NSString *stringValue = NSSTRING(value);
if ( [@"disable_all_logs" isEqualToString: stringKey] )
{
_disableAllLogs = [@"true" al_isEqualToStringIgnoringCase: stringValue];
}
ALSdkSettings *settings = getSdk().settings;
[settings setExtraParameterForKey: stringKey value: NSSTRING(value)];
[settings setExtraParameterForKey: stringKey value: stringValue];
}
int * _MaxGetSafeAreaInsets()
@@ -1114,7 +1040,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxShowCmpForExistingUser");
max_unity_log_uninitialized_access_error("_MaxShowCmpForExistingUser");
return;
}
@@ -1125,7 +1051,7 @@ extern "C"
{
if ( !_initializeSdkCalled )
{
logUninitializedAccessError("_MaxHasSupportedCmp");
max_unity_log_uninitialized_access_error("_MaxHasSupportedCmp");
return false;
}
@@ -1137,9 +1063,18 @@ extern "C"
return [MAUnityAdManager adaptiveBannerHeightForWidth: width];
}
void logUninitializedAccessError(const char *callingMethod)
void max_unity_log_uninitialized_access_error(const char *callingMethod)
{
NSLog(@"[%@] Failed to execute: %s - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG, callingMethod);
NSString *message = [NSString stringWithFormat:@"Failed to execute: %s - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", callingMethod];
max_unity_log_error(message);
}
void max_unity_log_error(NSString *message)
{
if (_disableAllLogs) return;
NSString *logMessage = [NSString stringWithFormat: @"[%@] %@", TAG, message];
NSLog(@"%@", logMessage);
}
}