123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //
- // MaxInitialization.cs
- // AppLovin MAX Unity Plugin
- //
- // Created by Thomas So on 5/24/19.
- // Copyright © 2019 AppLovin. All rights reserved.
- //
- using System.Collections.Generic;
- using System.IO;
- using UnityEditor;
- namespace AppLovinMax.Scripts.IntegrationManager.Editor
- {
- [InitializeOnLoad]
- public class AppLovinInitialize
- {
- private static readonly List<string> ObsoleteNetworks = new List<string>
- {
- "AdColony",
- "Criteo",
- "Nend",
- "Snap",
- "Tapjoy",
- "VerizonAds",
- "VoodooAds"
- };
- private static readonly List<string> ObsoleteFileExportPathsToDelete = new List<string>
- {
- // The `MaxSdk/Scripts/Editor` folder contents have been moved into `MaxSdk/Scripts/IntegrationManager/Editor`.
- "MaxSdk/Scripts/Editor",
- "MaxSdk/Scripts/Editor.meta",
- // The `EventSystemChecker` has been renamed to `MaxEventSystemChecker`.
- "MaxSdk/Scripts/EventSystemChecker.cs",
- "MaxSdk/Scripts/EventSystemChecker.cs.meta",
- // Google AdMob adapter pre/post process scripts. The logic has been migrated to the main plugin.
- "MaxSdk/Mediation/Google/Editor/MaxGoogleInitialize.cs",
- "MaxSdk/Mediation/Google/Editor/MaxGoogleInitialize.cs.meta",
- "MaxSdk/Mediation/Google/Editor/MaxMediationGoogleUtils.cs",
- "MaxSdk/Mediation/Google/Editor/MaxMediationGoogleUtils.cs.meta",
- "MaxSdk/Mediation/Google/Editor/PostProcessor.cs",
- "MaxSdk/Mediation/Google/Editor/PostProcessor.cs.meta",
- "MaxSdk/Mediation/Google/Editor/PreProcessor.cs",
- "MaxSdk/Mediation/Google/Editor/PreProcessor.cs.meta",
- "MaxSdk/Mediation/Google/Editor/MaxSdk.Mediation.Google.Editor.asmdef",
- "MaxSdk/Mediation/Google/MaxSdk.Mediation.Google.Editor.asmdef.meta",
- "Plugins/Android/MaxMediationGoogle.androidlib",
- "Plugins/Android/MaxMediationGoogle.androidlib.meta",
- // Google Ad Manager adapter pre/post process scripts. The logic has been migrated to the main plugin.
- "MaxSdk/Mediation/GoogleAdManager/Editor/MaxGoogleAdManagerInitialize.cs",
- "MaxSdk/Mediation/GoogleAdManager/Editor/MaxGoogleAdManagerInitialize.cs.meta",
- "MaxSdk/Mediation/GoogleAdManager/Editor/PostProcessor.cs",
- "MaxSdk/Mediation/GoogleAdManager/Editor/PostProcessor.cs.meta",
- "MaxSdk/Mediation/GoogleAdManager/Editor/MaxSdk.Mediation.GoogleAdManager.Editor.asmdef",
- "MaxSdk/Mediation/GoogleAdManager/Editor/MaxSdk.Mediation.GoogleAdManager.Editor.asmdef.meta",
- "Plugins/Android/MaxMediationGoogleAdManager.androidlib",
- "Plugins/Android/MaxMediationGoogleAdManager.androidlib.meta",
- // The `VariableService` has been removed.
- "MaxSdk/Scripts/MaxVariableServiceAndroid.cs",
- "MaxSdk/Scripts/MaxVariableServiceAndroid.cs.meta",
- "MaxSdk/Scripts/MaxVariableServiceiOS.cs",
- "MaxSdk/Scripts/MaxVariableServiceiOS.cs.meta",
- "MaxSdk/Scripts/MaxVariableServiceUnityEditor.cs",
- "MaxSdk/Scripts/MaxVariableServiceUnityEditor.cs.meta",
- // The `MaxSdk/Scripts/Editor` folder contents have been moved into `MaxSdk/Scripts/IntegrationManager/Editor`.
- "MaxSdk/Version.md",
- "MaxSdk/Version.md.meta",
- // TODO: Add MaxTargetingData and MaxUserSegment when the plugin has enough traction.
- };
- static AppLovinInitialize()
- {
- // Don't run obsolete file cleanup logic when entering play mode.
- if (EditorApplication.isPlayingOrWillChangePlaymode) return;
- #if UNITY_IOS
- // Check that the publisher is targeting iOS 9.0+
- if (!PlayerSettings.iOS.targetOSVersionString.StartsWith("9.") && !PlayerSettings.iOS.targetOSVersionString.StartsWith("1"))
- {
- MaxSdkLogger.UserError("Detected iOS project version less than iOS 9 - The AppLovin MAX SDK WILL NOT WORK ON < iOS9!!!");
- }
- #endif
- var isPluginInPackageManager = AppLovinIntegrationManager.IsPluginInPackageManager;
- if (!isPluginInPackageManager)
- {
- var changesMade = false;
- foreach (var obsoleteFileExportPathToDelete in ObsoleteFileExportPathsToDelete)
- {
- var pathToDelete = MaxSdkUtils.GetAssetPathForExportPath(obsoleteFileExportPathToDelete);
- if (CheckExistence(pathToDelete))
- {
- MaxSdkLogger.UserDebug("Deleting obsolete file '" + pathToDelete + "' that is no longer needed.");
- FileUtil.DeleteFileOrDirectory(pathToDelete);
- changesMade = true;
- }
- }
- var pluginParentDir = AppLovinIntegrationManager.PluginParentDirectory;
- // Check if any obsolete networks are installed
- foreach (var obsoleteNetwork in ObsoleteNetworks)
- {
- var networkDir = Path.Combine(pluginParentDir, "MaxSdk/Mediation/" + obsoleteNetwork);
- if (CheckExistence(networkDir))
- {
- MaxSdkLogger.UserDebug("Deleting obsolete network " + obsoleteNetwork + " from path " + networkDir + "...");
- FileUtil.DeleteFileOrDirectory(networkDir);
- FileUtil.DeleteFileOrDirectory(networkDir + ".meta");
- changesMade = true;
- }
- }
- // Refresh UI
- if (changesMade)
- {
- AssetDatabase.Refresh();
- MaxSdkLogger.UserDebug("Obsolete networks and files removed.");
- }
- }
- AppLovinAutoUpdater.Update();
- }
- private static bool CheckExistence(string location)
- {
- return File.Exists(location) ||
- Directory.Exists(location) ||
- (location.EndsWith("/*") && Directory.Exists(Path.GetDirectoryName(location)));
- }
- }
- }
|