原方案是使用Addressables.CN来实现加密,但其存在一些问题:加密资源下载后无法直接缓存到本地(真正调用时才会下载并缓存)。所以弃用Addressables.CN的加密方案。由于我们只需求对Lua代码进行加密,所以我们可以使用luajit进行编译加密。
具体打包流程为:
-
备份所有Lua文件到临时目录。
-
调用luajit对原Lua文件进行luajit编译。
-
调用AAS对资源进行打包(此时Lua文件已被替换为luajit文件)。
-
还原所有Lua文件。
注意事项:
-
由于Lua文件读取是使用TextAsset文本类型进行读取,而luajit文件为二进制形式,所以直接以.lua文件名进行读取会导致读取结果异常,需要将.lua改为.bytes进行保存,对应meta也要修改。另外AAS是通过uid对资源进行引用,所以单纯修改文件名并不会导致AAS引用异常,无需AAS进行额外处理。
-
若打出的luajit文件读取失败,可能与luajit构建的位数或者版本有关。