【打包】增加缓存混淆资源

main
刘涛 2025-10-22 18:09:39 +08:00
parent 78e17887dd
commit 18fd13b4d7
3 changed files with 82 additions and 17 deletions

View File

@ -7,6 +7,7 @@ using PhxhSDK.AOT.VersionUpdate;
using System;
using System.Collections.Generic;
using System.IO;
using Obfuz.Settings;
using UnityEditor;
using UnityEngine;
using BuildTarget = UnityEditor.BuildTarget;
@ -119,23 +120,8 @@ internal class BatchBuild
// 还原宏
_RevertScriptDefines();
#region 打整包时缓存当前版本的AotDll
string aotDllStorePath = GetAotDllStorePath(info.workSpace, info.version);
string aotDllPath = SettingsUtil.GetAssembliesPostIl2CppStripDir(EditorUserBuildSettings.activeBuildTarget);
DirectoryInfo dir = new(aotDllPath);
if (Directory.Exists(aotDllStorePath))
Directory.Delete(aotDllStorePath, true);
Directory.CreateDirectory(aotDllStorePath);
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
file.CopyTo(Path.Combine(aotDllStorePath, file.Name), false);
}
#endregion
// 缓存打包时的文件
_CacheBuildFiles(info);
PostLoginKey(info.version); // 上传Aot loginKey
}
@ -147,6 +133,49 @@ internal class BatchBuild
}
}
private static void _CacheAotDlls(UpdateLocalInfo info)
{
string aotDllStorePath = GetAotDllStorePath(info.workSpace, info.version);
string aotDllPath = SettingsUtil.GetAssembliesPostIl2CppStripDir(EditorUserBuildSettings.activeBuildTarget);
DirectoryInfo dir = new(aotDllPath);
if (Directory.Exists(aotDllStorePath))
Directory.Delete(aotDllStorePath, true);
Directory.CreateDirectory(aotDllStorePath);
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
file.CopyTo(Path.Combine(aotDllStorePath, file.Name), false);
}
}
private static void _CacheObfuzFiles(UpdateLocalInfo info)
{
// 备份 Assets/Obfuz/SymbolObfus 文件夹
// 备份 Library/Obfuz/{buildTarget} 文件夹
var obfuzSymbolPath = Application.dataPath + "/Obfuz/SymbolObfus";
var obfuzBuildPath = Application.dataPath + $"/../Library/Obfuz/{EditorUserBuildSettings.activeBuildTarget}";
var cacheObfuzPath = Application.dataPath + $"/../Yoo_Build_Cache/{info.workSpace}/{info.version}/CacheObfuz";
var cacheObfuzSymbolPath = cacheObfuzPath + "/SymbolObfus";;
var cacheObfuzBuildPath = cacheObfuzPath + $"/{EditorUserBuildSettings.activeBuildTarget}";
if (Directory.Exists(cacheObfuzPath))
Directory.Delete(cacheObfuzPath, true);
Directory.CreateDirectory(cacheObfuzPath);
DirectoryCopyHelper.CopyDirectory(obfuzSymbolPath, cacheObfuzSymbolPath);
DirectoryCopyHelper.CopyDirectory(obfuzBuildPath, cacheObfuzBuildPath);
}
private static void _CacheBuildFiles(UpdateLocalInfo info)
{
_CacheAotDlls(info);
if (ObfuzSettings.Instance.buildPipelineSettings.enable)
{
_CacheObfuzFiles(info);
}
}
/// <summary>
/// 批处理增量更新资源
/// jenkins打包增量更新时使用该方法

View File

@ -0,0 +1,33 @@
public class DirectoryCopyHelper
{
public static void CopyDirectory(string srcPath,
string dstPath)
{
// 目标目录不存在则创建
if (!System.IO.Directory.Exists(dstPath))
{
System.IO.Directory.CreateDirectory(dstPath);
}
// 获取源目录下的所有文件和子目录
string[] files = System.IO.Directory.GetFiles(srcPath);
string[] directories = System.IO.Directory.GetDirectories(srcPath);
// 复制文件
foreach (string file in files)
{
string fileName = System.IO.Path.GetFileName(file);
string destFile = System.IO.Path.Combine(dstPath, fileName);
System.IO.File.Copy(file, destFile, true);
}
// 递归复制子目录
foreach (string directory in directories)
{
string dirName = System.IO.Path.GetFileName(directory);
string destDir = System.IO.Path.Combine(dstPath, dirName);
CopyDirectory(directory, destDir);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 582147fdd24d45f08d7c392cc1555d6b
timeCreated: 1761127475