Quick-Cocos2dx-Community 3.6.1在发布时加密lua源文件

来源:互联网 发布:重庆网络问政平台官网 编辑:程序博客网 时间:2024/06/06 13:26

当游戏开发完成需要真机测试或者需要打包发布时,需要对lua源代码和资源进行加密处理,以免自己的资源和源代码以明文形式暴露在ipa或者apk中。本文是介绍在mac机下进行的加密步骤和在加密过程中遇到的问题。

环境:引擎版本:Quick-Cocos2dx-Community 3.6.1

           平台:iMac mac os sierra 10.12.2

步骤:

1.打开终端,进入项目目录下

$ cd  ~/project_v1.0


2. 资源加密。运行Quick提供的 encrypt_res.sh 加密工具.

注:encrypt_res.sh 在Quick-Cocos2dx-Community/ quick/ bin 文件目录下

终端运行:
~/Quick-Cocos2dx-Community/quick/bin/encrypt_res.sh -i ~/project_v1.0/res -o ~/project_v1.0/res -esaaa -ek jerrychen

3. lua源代码加密。运行Quick提供的 compile_scripts.sh 加密工具.

注:compile_scripts.sh 在Quick-Cocos2dx-Community/quick/ bin 文件目录下

终端运行:

~/Quick-Cocos2dx-Community/quick/bin/compile_scripts.sh -i src -o res/game64.zip -e xxtea_zip -ekaaa -es jerrychen -b 64

~/Quick-Cocos2dx-Community/quick/bin/compile_scripts.sh -i src -o res/game32.zip -e xxtea_zip -ek aaa -es jerrychen 

上例中,加密 lua 源文件所在的 src 目录,输出到res/game.zip,加密模式为zip包xxtea,加密密钥:aaa,加密签名:jerrychen, -b:加密位数。后面不带位数默认为32位。

由于android并没有强制要求64位,Luajit在不用的平台使用不同的位数支持。情况如下:

1. Android、Win32、Mac 继续使用32位的jit。

2. iOS更新硬件来决定使用的jit位数,5s以上设备使用64位jit,以下设备使用32位jit。

所以游戏发布的时候,针对iOS你需要用 compile_scripts 分别生产 32 和 64 位的 bytecode包,并在游戏启动逻辑加入系统位数判断,以启动不同的包。不然被报错。


4.在执行加密文件命令的时候可能出现命令错误:permission denied。没有权限,要进行权限设置,可以在执行命令最前面加sudo,或者对你要执行的命令增加权限 chmod +x compile_scripts.sh。注意在执行文件加密命令时,compile_scripts.sh,encrypt_res,luajit,luajit64等命令都会可能会出现permission denied问题。


5. iOS在不同的机型上要使用不同的jit位数加密的zip文件,不然会造成解密时候lua文件解密失败(错误提示:error : syntax error during pre-compilation   -loaded chunks counts:0)。


6.错误描述luajit64找不到对应的lua描述文件。暂时的解决办法是,自己手动编译一次LuaJIT 并在mac上make install,这样会自动把这些文件放到系统目录下,命令行就能找到了


下载地址:http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz  下载后,make install,可以解决,一般开园软件的编译安装方式。下载解压到任意目录。cd到这个目录。然后make install。这里LuaJit下载包,不同版本对应不同的包,3.6.1对应的是beta1版本,不然还是会出现原问题,beta2对应的是3.6.3版本。其余版本对应都在这网址访问:http://luajit.org


7. 在加密lua代码时候,出现如下错误

加密无效,无法生存zip包,请到github上面下载最新的 ScriptsCompiler.php文件,替换老文件就行,下载地址:https://github.com/u0u0/Quick-Cocos2dx-Community/blob/master/quick/bin/lib/quick/ScriptsCompiler.php


在用mac机做quick开发时候,安装好player,搭好环境也是一种不错的选择,已经熟悉mac机开发的同学不必纠结切换到windows进行开发。


附带命令字释义:

 options:
    -h show help
    -p package name
    -o project path (default is "current_dir/last_package_name")
    -r screen orientation (default is "portrait")
    -f overwrite exists files
    -q quiet
    -t  template dir
    

    screen orientation:
    -r portrait (default)  竖屏
    -r landscape    横屏



0 0
原创粉丝点击