public override void fixProblem() { ImportantGradleSettings settings = new ImportantGradleSettings(path); string leadingWhitespaces = ""; string line; string prevLine = ""; string modifiedGradle = ""; StreamReader gradleScript = new StreamReader(path); string multidexDependency; int comparsionUnityVersionWith20182 = AppodealUnityUtils.compareVersions(Application.unityVersion, "2018.2"); if (comparsionUnityVersionWith20182 < 0) { multidexDependency = MultidexActivator.GRADLE_COMPILE + MultidexActivator.GRADLE_MULTIDEX_DEPENDENCY; } else { multidexDependency = MultidexActivator.GRADLE_IMPLEMENTATION + MultidexActivator.GRADLE_MULTIDEX_DEPENDENCY; } while ((line = gradleScript.ReadLine()) != null) { if (!settings.multidexDependencyPresented && line.Contains(MultidexActivator.GRADLE_DEPENDENCIES)) { modifiedGradle += leadingWhitespaces + multidexDependency + Environment.NewLine; } if (!settings.multidexEnabled && line.Contains(MultidexActivator.GRADLE_APP_ID)) { modifiedGradle += leadingWhitespaces + MultidexActivator.GRADLE_MULTIDEX_ENABLE + Environment.NewLine; } if (settings.deprecatedProguardPresented && line.Contains(MultidexActivator.GRADLE_USE_PROGUARD)) { //useProguard is deprecated continue; } modifiedGradle += line + Environment.NewLine; leadingWhitespaces = Regex.Match(line, "^\\s*").Value; if (line.Contains("repositories") && prevLine.Contains("allprojects") && !settings.googleRepositoryPresented) { leadingWhitespaces += leadingWhitespaces; modifiedGradle += leadingWhitespaces + MultidexActivator.GRADLE_GOOGLE_REPOSITORY_COMPAT + Environment.NewLine; } prevLine = line; } gradleScript.Close(); File.WriteAllText(path, modifiedGradle); AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(path), ImportAssetOptions.ForceUpdate); }
public static void PrepareProject(string buildPath) { Debug.Log("preparing your xcode project for appodeal"); string projPath = Path.Combine(buildPath, "Unity-iPhone.xcodeproj/project.pbxproj"); absoluteProjPath = Path.GetFullPath(buildPath); PBXProject project = new PBXProject(); project.ReadFromString(File.ReadAllText(projPath)); string target = project.TargetGuidByName("Unity-iPhone"); AddProjectFrameworks(frameworkList, project, target, false); AddProjectFrameworks(weakFrameworkList, project, target, true); AddProjectLibs(platformLibs, project, target); project.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); //Major Xcode version version should be the same as that used by the native SDK developers. string xcodeVersion = AppodealUnityUtils.getXcodeVersion(); if (xcodeVersion == null || AppodealUnityUtils.compareVersions(xcodeVersion, minVersionToEnableBitcode) >= 0) { project.SetBuildProperty(target, "ENABLE_BITCODE", "YES"); } else { project.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); } project.AddBuildProperty(target, "LIBRARY_SEARCH_PATHS", "$(SRCROOT)/Libraries"); project.AddBuildProperty(target, "LIBRARY_SEARCH_PATHS", "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)"); project.AddBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); project.AddBuildProperty(target, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"); project.SetBuildProperty(target, "SWIFT_VERSION", "4.0"); //Adapters are archived in order not to exceed the 100 Mb limit on GitHub //Some users use GitHub with Unity Cloud Build string apdFolder = "Adapters"; string appodealPath = Path.Combine(Application.dataPath, "Appodeal"); string adaptersPath = Path.Combine(appodealPath, apdFolder); if (Directory.Exists(adaptersPath)) { foreach (string file in Directory.GetFiles(adaptersPath)) { if (Path.GetExtension(file).Equals(".zip")) { Debug.Log("unzipping:" + file); AddAdaptersDirectory(apdFolder, project, target); } } } File.WriteAllText(projPath, project.WriteToString()); }
public static void PrepareProject(string buildPath) { Debug.Log("preparing your xcode project for appodeal"); var projectPath = PBXProject.GetPBXProjectPath(buildPath); var project = new PBXProject(); project.ReadFromString(File.ReadAllText(projectPath)); #if UNITY_2019_3_OR_NEWER var target = project.GetUnityMainTargetGuid(); var unityFrameworkTarget = project.GetUnityFrameworkTargetGuid(); #else var target = project.TargetGuidByName("Unity-iPhone"); #endif AddProjectFrameworks(frameworkList, project, target, false); AddProjectFrameworks(weakFrameworkList, project, target, true); AddProjectLibs(platformLibs, project, target); project.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); var xcodeVersion = AppodealUnityUtils.getXcodeVersion(); if (xcodeVersion == null || AppodealUnityUtils.compareVersions(xcodeVersion, minVersionToEnableBitcode) >= 0) { project.SetBuildProperty(target, "ENABLE_BITCODE", "YES"); } else { project.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); } project.AddBuildProperty(target, "LIBRARY_SEARCH_PATHS", "$(SRCROOT)/Libraries"); project.AddBuildProperty(target, "LIBRARY_SEARCH_PATHS", "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)"); #if UNITY_2019_3_OR_NEWER project.AddBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); project.AddBuildProperty(unityFrameworkTarget, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO"); #else project.AddBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); #endif project.AddBuildProperty(target, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"); project.SetBuildProperty(target, "SWIFT_VERSION", "4.0"); File.WriteAllText(projectPath, project.WriteToString()); }