public override void PerBuildExecute(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture architecture, BuildDistribution distribution, System.DateTime buildTime, ref BuildOptions options, string configKey, string buildPath)
        {
            string preBuildDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(platform.targetGroup);
            string defaultDefines  = BuildProject.GenerateDefaultDefines(releaseType, platform, architecture, distribution);

            StringBuilder mergedDefines = new StringBuilder(BuildProject.MergeDefines(preBuildDefines, defaultDefines));

            if (!string.IsNullOrEmpty(removeDefines))
            {
                string   resolvedRemove = BuildProject.ResolvePath(removeDefines, releaseType, platform, architecture, distribution, buildTime);
                string[] splitRemove    = resolvedRemove.Split(';');

                for (int i = 0; i < splitRemove.Length; i++)
                {
                    mergedDefines.Replace(splitRemove[i] + ";", "");
                    mergedDefines.Replace(splitRemove[i], "");
                }
            }

            if (!string.IsNullOrEmpty(addDefines))
            {
                string resolvedAdd = BuildProject.ResolvePath(addDefines, releaseType, platform, architecture, distribution, buildTime);

                if (mergedDefines.Length > 0)
                {
                    mergedDefines.Append(";");
                }

                mergedDefines.Append(resolvedAdd);
            }

            PlayerSettings.SetScriptingDefineSymbolsForGroup(platform.targetGroup, mergedDefines.ToString());
        }