ObfuzProcess触发 ObfuscationBeginEvent和ObfuscationEndEvent

backup
walon 2025-05-03 20:41:04 +08:00
parent a7fd8fc097
commit 6f35885854
1 changed files with 29 additions and 3 deletions

View File

@ -16,12 +16,28 @@ namespace Obfuz
{ {
#if UNITY_2019_1_OR_NEWER #if UNITY_2019_1_OR_NEWER
internal class ObfuzProcess : IPreprocessBuildWithReport, IPostprocessBuildWithReport public class ObfuzProcess : IPreprocessBuildWithReport, IPostprocessBuildWithReport
{ {
private static bool s_obfuscated = false; private static bool s_obfuscated = false;
public int callbackOrder => 10000; public int callbackOrder => 10000;
public class ObfuscationBeginEventArgs : EventArgs
{
public string scriptAssembliesPath;
public string obfuscatedScriptAssembliesPath;
}
public class ObfuscationEndEventArgs : EventArgs
{
public string originalScriptAssembliesPath;
public string obfuscatedScriptAssembliesPath;
}
public static event Action<ObfuscationBeginEventArgs> OnObfuscationBegin;
public static event Action<ObfuscationEndEventArgs> OnObfuscationEnd;
[InitializeOnLoadMethod] [InitializeOnLoadMethod]
private static void Init() private static void Init()
{ {
@ -72,7 +88,12 @@ namespace Obfuz
Debug.Log("Obfuscation begin..."); Debug.Log("Obfuscation begin...");
var buildTarget = EditorUserBuildSettings.activeBuildTarget; var buildTarget = EditorUserBuildSettings.activeBuildTarget;
string obfuscatedAssemblyOutputDir = settings.GetObfuscatedAssemblyOutputDir(buildTarget);
OnObfuscationBegin?.Invoke(new ObfuscationBeginEventArgs
{
scriptAssembliesPath = scriptAssembliesPath,
obfuscatedScriptAssembliesPath = obfuscatedAssemblyOutputDir,
});
string backupPlayerScriptAssembliesPath = settings.GetOriginalAssemblyBackupDir(buildTarget); string backupPlayerScriptAssembliesPath = settings.GetOriginalAssemblyBackupDir(buildTarget);
FileUtil.CopyDir(scriptAssembliesPath, backupPlayerScriptAssembliesPath); FileUtil.CopyDir(scriptAssembliesPath, backupPlayerScriptAssembliesPath);
@ -98,7 +119,7 @@ namespace Obfuz
}.Concat(settings.extraAssemblySearchDirs).ToList(), }.Concat(settings.extraAssemblySearchDirs).ToList(),
obfuscationRuleFiles = settings.ruleFiles.ToList(), obfuscationRuleFiles = settings.ruleFiles.ToList(),
mappingXmlPath = settings.mappingFile, mappingXmlPath = settings.mappingFile,
outputDir = ObfuzSettings.Instance.GetObfuscatedAssemblyOutputDir(buildTarget), outputDir = obfuscatedAssemblyOutputDir,
}; };
var obfuz = new Obfuscator(opt); var obfuz = new Obfuscator(opt);
obfuz.Run(); obfuz.Run();
@ -116,6 +137,11 @@ namespace Obfuz
File.Copy(src, dst, true); File.Copy(src, dst, true);
Debug.Log($"obfuscate dll:{dst}"); Debug.Log($"obfuscate dll:{dst}");
} }
OnObfuscationEnd?.Invoke(new ObfuscationEndEventArgs
{
originalScriptAssembliesPath = backupPlayerScriptAssembliesPath,
obfuscatedScriptAssembliesPath = scriptAssembliesPath,
});
Debug.Log("Obfuscation end."); Debug.Log("Obfuscation end.");
} }