修复`HybridCLR/ObfuzExtension/GenerateAll`生成AOTGenericReferences时热更新dll还未混淆,并且热更新dll的resolve路径为原始未混淆的dll路径,而不是混淆后的dll路径的bug
parent
97be9b0709
commit
064af2872e
|
@ -23,6 +23,8 @@ using IAssemblyResolver = HybridCLR.Editor.Meta.IAssemblyResolver;
|
||||||
using CombinedAssemblyResolver = HybridCLR.Editor.Meta.CombinedAssemblyResolver;
|
using CombinedAssemblyResolver = HybridCLR.Editor.Meta.CombinedAssemblyResolver;
|
||||||
using MetaUtil = HybridCLR.Editor.Meta.MetaUtil;
|
using MetaUtil = HybridCLR.Editor.Meta.MetaUtil;
|
||||||
using AssemblyCache = HybridCLR.Editor.Meta.AssemblyCache;
|
using AssemblyCache = HybridCLR.Editor.Meta.AssemblyCache;
|
||||||
|
using HybridCLR.Editor.AOT;
|
||||||
|
using Analyzer2 = HybridCLR.Editor.AOT.Analyzer;
|
||||||
|
|
||||||
namespace Obfuz4HybridCLR
|
namespace Obfuz4HybridCLR
|
||||||
{
|
{
|
||||||
|
@ -47,11 +49,11 @@ namespace Obfuz4HybridCLR
|
||||||
Il2CppDefGeneratorCommand.GenerateIl2CppDef();
|
Il2CppDefGeneratorCommand.GenerateIl2CppDef();
|
||||||
LinkGeneratorCommand.GenerateLinkXml(target);
|
LinkGeneratorCommand.GenerateLinkXml(target);
|
||||||
StripAOTDllCommand.GenerateStripedAOTDlls(target);
|
StripAOTDllCommand.GenerateStripedAOTDlls(target);
|
||||||
AOTReferenceGeneratorCommand.GenerateAOTGenericReference(target);
|
|
||||||
|
|
||||||
string obfuscatedHotUpdateDllPath = GetObfuscatedHotUpdateAssemblyOutputPath(target);
|
string obfuscatedHotUpdateDllPath = GetObfuscatedHotUpdateAssemblyOutputPath(target);
|
||||||
ObfuscateUtil.ObfuscateHotUpdateAssemblies(target, obfuscatedHotUpdateDllPath);
|
ObfuscateUtil.ObfuscateHotUpdateAssemblies(target, obfuscatedHotUpdateDllPath);
|
||||||
GenerateMethodBridgeAndReversePInvokeWrapper(target, obfuscatedHotUpdateDllPath);
|
GenerateMethodBridgeAndReversePInvokeWrapper(target, obfuscatedHotUpdateDllPath);
|
||||||
|
GenerateAOTGenericReference(target, obfuscatedHotUpdateDllPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MenuItem("HybridCLR/ObfuzExtension/CompileAndObfuscateDll")]
|
[MenuItem("HybridCLR/ObfuzExtension/CompileAndObfuscateDll")]
|
||||||
|
@ -120,5 +122,25 @@ namespace Obfuz4HybridCLR
|
||||||
|
|
||||||
MethodBridgeGeneratorCommand.CleanIl2CppBuildCache();
|
MethodBridgeGeneratorCommand.CleanIl2CppBuildCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void GenerateAOTGenericReference(BuildTarget target, string obfuscatedHotUpdateDllPath)
|
||||||
|
{
|
||||||
|
var gs = SettingsUtil.HybridCLRSettings;
|
||||||
|
List<string> hotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||||
|
|
||||||
|
AssemblyReferenceDeepCollector collector = new AssemblyReferenceDeepCollector(
|
||||||
|
CreateObfuscatedHotUpdateAndAOTAssemblyResolver(target, hotUpdateDllNames, ObfuzSettings.Instance.assemblySettings.GetAssembliesToObfuscate(), obfuscatedHotUpdateDllPath), hotUpdateDllNames);
|
||||||
|
var analyzer = new Analyzer2(new Analyzer2.Options
|
||||||
|
{
|
||||||
|
MaxIterationCount = Math.Min(20, gs.maxGenericReferenceIteration),
|
||||||
|
Collector = collector,
|
||||||
|
});
|
||||||
|
|
||||||
|
analyzer.Run();
|
||||||
|
|
||||||
|
var writer = new GenericReferenceWriter();
|
||||||
|
writer.Write(analyzer.AotGenericTypes.ToList(), analyzer.AotGenericMethods.ToList(), $"{Application.dataPath}/{gs.outputAOTGenericReferenceFile}");
|
||||||
|
AssetDatabase.Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue