obfuz/Samples/WorkWithHybridCLR/Assets/Editor/BuildCommand.cs

40 lines
1.6 KiB
C#
Raw Normal View History

2025-05-21 10:42:06 +08:00
using HybridCLR.Editor;
using HybridCLR.Editor.Commands;
using Obfuz.Settings;
2025-05-21 10:42:06 +08:00
using Obfuz4HybridCLR;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public static class BuildCommand
{
[MenuItem("Build/CompileAndObfuscateAndCopyToStreamingAssets")]
public static void CompileAndObfuscateAndCopyToStreamingAssets()
{
BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
CompileDllCommand.CompileDll(target);
string obfuscatedHotUpdateDllPath = PrebuildCommandExt.GetObfuscatedHotUpdateAssemblyOutputPath(target);
ObfuscateUtil.ObfuscateHotUpdateAssemblies(target, obfuscatedHotUpdateDllPath);
2025-05-21 10:42:06 +08:00
Directory.CreateDirectory(Application.streamingAssetsPath);
string hotUpdateDllPath = $"{SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target)}";
List<string> obfuscationRelativeAssemblyNames = ObfuzSettings.Instance.assemblySettings.GetObfuscationRelativeAssemblyNames();
2025-05-21 10:42:06 +08:00
foreach (string assName in SettingsUtil.HotUpdateAssemblyNamesIncludePreserved)
{
string srcDir = obfuscationRelativeAssemblyNames.Contains(assName) ? obfuscatedHotUpdateDllPath : hotUpdateDllPath;
string srcFile = $"{srcDir}/{assName}.dll";
2025-05-21 10:42:06 +08:00
string dstFile = $"{Application.streamingAssetsPath}/{assName}.dll.bytes";
if (File.Exists(srcFile))
{
File.Copy(srcFile, dstFile, true);
Debug.Log($"[CompileAndObfuscate] Copy {srcFile} to {dstFile}");
}
2025-05-21 10:42:06 +08:00
}
}
}