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 文件目录下
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 横屏
- Quick-Cocos2dx-Community 3.6.1在发布时加密lua源文件
- [cocos2dx_Lua]在发布时加密lua源文件
- Quick社区版第一个稳定版,Quick-Cocos2dx-Community 3.6 release发布!
- Quick-Cocos2dx-Community lua绑定,lua调用C++ 类
- Quick-Cocos2dx-Community 3.6 入门之旅<1>
- Quick-Cocos2dx-Community 3.6.1 mac版环境搭建
- quick cocos2dx c-lua(1)
- quick-cocos2dx cocos2dx.lua
- 记录一下Quick-Cocos2dx-Community lua绑定C++自定义类遇到的问题
- cocos2dx quick lua 学习笔记1
- quick cocos2dx脚本加密
- lua: cocos2dx lua 加密
- lua源文件加密
- quick lua加密
- quick-cocos2dx在eclipse下的lua调试
- quick-cocos2dx在eclipse下的lua调试
- quick-cocos2dx在eclipse下的lua调试
- [quick-cocos2d-x lua学习] 源文件编译、加密详解、及自更新文章收集
- ionic2 一.基础 (5)项目app开发开始准备工作
- 在play framework 1.x中使用多线程调用JPA对象
- 华为机试-字符串合并
- JAVA 保留两位小数的四种方法
- svn文件夹不显示绿色勾的解决方法
- Quick-Cocos2dx-Community 3.6.1在发布时加密lua源文件
- ImageView剖析一(从源码的角度理解ImageView)
- nyoj-257-中缀转后缀
- 4 将继承封装成函数
- Java--File类
- 加班最勤奋的往往是失败者,他们只是在拼命杀死自己|真实故事
- CSS实现div的高度填满剩余空间
- Android消息推送,极光推送
- 重载与重写抽象类和接口