diff --git a/com.code-philosophy.obfuz/Editor/Obfuscator.cs b/com.code-philosophy.obfuz/Editor/Obfuscator.cs index cad0320..b142f42 100644 --- a/com.code-philosophy.obfuz/Editor/Obfuscator.cs +++ b/com.code-philosophy.obfuz/Editor/Obfuscator.cs @@ -35,7 +35,9 @@ namespace Obfuz public Obfuscator(ObfuscatorBuilder builder) { + CheckSettings(builder.CoreSettingsFacade); _coreSettings = builder.CoreSettingsFacade; + _allObfuscationRelativeAssemblyNames = _coreSettings.assembliesToObfuscate .Concat(_coreSettings.nonObfuscatedButReferencingObfuscatedAssemblies) .ToList(); @@ -59,6 +61,33 @@ namespace Obfuz _pipeline2.AddPass(new RemoveObfuzAttributesPass()); } + private void CheckSettings(CoreSettingsFacade settings) + { + var totalAssemblies = new HashSet(); + foreach (var assName in settings.assembliesToObfuscate) + { + if (string.IsNullOrWhiteSpace(assName)) + { + throw new Exception($"the name of some assembly in assembliesToObfuscate is empty! Please check your settings."); + } + if (!totalAssemblies.Add(assName)) + { + throw new Exception($"the name of assembly `{assName}` in assembliesToObfuscate is duplicated! Please check your settings."); + } + } + foreach (var assName in settings.nonObfuscatedButReferencingObfuscatedAssemblies) + { + if (string.IsNullOrWhiteSpace(assName)) + { + throw new Exception($"the name of some assembly in nonObfuscatedButReferencingObfuscatedAssemblies is empty! Please check your settings."); + } + if (!totalAssemblies.Add(assName)) + { + throw new Exception($"the name of assembly `{assName}` in nonObfuscatedButReferencingObfuscatedAssemblies is duplicated! Please check your settings."); + } + } + } + public void Run() { Debug.Log($"Obfuscator Run. begin");