// // AppLovinBuildPostProcessor.cs // AppLovin MAX Unity Plugin // // Created by Santosh Bagadi on 8/29/19. // Copyright © 2019 AppLovin. All rights reserved. // #if UNITY_ANDROID using System.IO; using UnityEditor.Android; using UnityEngine; namespace AppLovinMax.Scripts.IntegrationManager.Editor { /// /// Adds Quality Service plugin to the Gradle project once the project has been exported. See for more details. /// public class AppLovinPostProcessGradleProject : AppLovinProcessGradleBuildFile, IPostGenerateGradleAndroidProject { public void OnPostGenerateGradleAndroidProject(string path) { if (!AppLovinSettings.Instance.QualityServiceEnabled) return; #if UNITY_2019_3_OR_NEWER // On Unity 2019.3+, the path returned is the path to the unityLibrary's module. // The AppLovin Quality Service buildscript closure related lines need to be added to the root build.gradle file. var rootGradleBuildFilePath = Path.Combine(path, "../build.gradle"); #if UNITY_2022_2_OR_NEWER if (!AddPluginToRootGradleBuildFile(rootGradleBuildFilePath)) return; var rootSettingsGradleFilePath = Path.Combine(path, "../settings.gradle"); if (!AddAppLovinRepository(rootSettingsGradleFilePath)) return; #else var buildScriptChangesAdded = AddQualityServiceBuildScriptLines(rootGradleBuildFilePath); if (!buildScriptChangesAdded) return; #endif // The plugin needs to be added to the application module (named launcher) var applicationGradleBuildFilePath = Path.Combine(path, "../launcher/build.gradle"); #else // If Gradle template is enabled, we would have already updated the plugin. if (AppLovinIntegrationManager.GradleTemplateEnabled) return; var applicationGradleBuildFilePath = Path.Combine(path, "build.gradle"); #endif if (!File.Exists(applicationGradleBuildFilePath)) { MaxSdkLogger.UserWarning("Couldn't find build.gradle file. Failed to add AppLovin Quality Service plugin to the gradle project."); return; } AddAppLovinQualityServicePlugin(applicationGradleBuildFilePath); } public int callbackOrder { get { return int.MaxValue; } } } } #endif