using System; using System.Collections.Generic; using System.IO; using System.Linq; using AlicizaX.Editor; using AlicizaX.Runtime; using UnityEditor; using UnityEngine; public static class AppBuildHelper { private const string _entryScene = "Assets/Scenes/Main.unity"; public static void BuildApplication(AppBuildParameter appBuildParameter) { if (!Directory.Exists(appBuildParameter.outPutPath)) { Directory.CreateDirectory(appBuildParameter.outPutPath); } Debug.Log("Starting build application"); BuilderGenerate.GeneratAppBuilderSetting(appBuildParameter.language, appBuildParameter.developBuild, appBuildParameter.resMode); Debug.Log("Generate AppBuilderSetting.bytes"); BuilderGenerate.GenerateAssemblyLoadData(); try { var options = new BuildPlayerOptions { scenes = new[] { _entryScene }, locationPathName = Path.Combine(appBuildParameter.outPutPath, appBuildParameter.fileName), target = appBuildParameter.buildTarget, options = appBuildParameter.developBuild ? BuildOptions.Development : BuildOptions.None }; var report = BuildPipeline.BuildPlayer(options); HandleBuildReport(report); } catch (Exception e) { Debug.Log($"构建过程中发生异常: {e.Message}"); } } private static void HandleBuildReport(UnityEditor.Build.Reporting.BuildReport report) { if (report.summary.result == UnityEditor.Build.Reporting.BuildResult.Succeeded) { Debug.Log($"整包构建完成:${report.summary.outputPath}"); } else { Debug.Log($"错误信息: {report.SummarizeErrors()}"); } } }