quick-3.5 打包加密的个人总结

对于quick-lua打包问题,在网上有很多文章介绍。可到了quick-lua 3.5 框架有很大的变化,以前的都不适用了。

最近从网上找了一些资料,总结记录下来 ,仅供个人参考


###加密###

quick-lua 3.5

1. quick2.2.6和quick 3.3使用lua 5.1.5
2. 2dx的方案是,64位iOS使用lua 5.1.5,其他的平台都使用luajit,所以如果编译lua代码,需要两套
3. quick 3.5可以看做是2dx 3.5之上的一个插件,所以在这方面和2dx的方案是一样的 


        因为luajit不支持64位,iOS 64位上使用了lua。考虑到性能问题,其他所有的平台(包含iOS 32位),使用了luajit。这意味着如果想让一套lua脚本同时运行在iOS32位和64位设备上,那就不能使用lua字节码,lua和luajit生成的字节码是不兼容的。

        首先,为什么要用luajit呢?我能想到的原因有两个,一是效率,二是加密。用luajit之后执行效率会有很大的提升,特别是在android下,另外呢luajit之后得到的文件是二进制的bytecode,基本无法反编译,因此对于商业产品来说,提高了被反解的成本。

        那么luajit与lua到底有什么区别呢?从使用上来说没有区别,因为头文件都是一致的,所以将lua换成luajit来说,有两个步骤,一个是将头文件换成luajit的,另外一个是将动态链接库或者静态链接库也换成luajit的


加密命令

1.windows,android ios 确保不编译代码,只加密不编译,安全性未知
cocos luacompile -s src/ -d out/src/ -e -k key123 -b sign123 --disable-compile 

2.未验证通过(无法实现)
WIN:
compile_scripts.bat -i D:\MyGame\src -o D:\MyGame\res\game.zip  -e 
xxtea_zip -es key123 -ek sign123

MAC:

./compile_scripts.sh -i /Developer/MyGame/src -o /Developer/MyGame/res/game.zip  -e xxtea_zip -es key123 -ek sign123


AppDelegate.cpp 修改

stack->loadChunksFromZIP("res/game.zip");

stack->executeString("require 'main'");


解决办法:待解决
1.修改quick-3.5框架,只使用lua不使用luajit,然后使用quick-3.3的加密工具加密 (牺牲性能,较可行)

2.更新quick-3.5 luajit库 使用2.1版本支持ios 64位(目前只是alph版本)

3.升级到3.7支持ios 64 bytecode (这个行不通,已经验证)


QQ群:239759131 cocos 技术交流 欢迎您


<think>好的,我现在需要帮助用户解决如何使用electron-quick-start项目打包适用于32位系统的应用程序的问题。首先,我得仔细分析用户的问题,然后结合提供的引用内容,找到相关的信息。 用户提到electron-quick-start,这应该是一个Electron的快速启动项目,通常用于打包应用程序。用户需要的是32位系统的版本,可能需要调整打包命令中的架构参数。根据引用中的内容,特别是引用[2]和引用[4],里面提到了打包命令中的--arch参数。例如,引用[2]中的命令使用了--arch=x64,这显然是64位架构。同理,如果用户需要32位,可能需要将--arch参数设置为ia32。 接下来,我需要确认Electron-packager是否支持ia32架构。根据Electron官方文档,electron-packager确实支持多种架构,包括ia32。因此,修改打包命令中的--arch为ia32应该可以生成32位的应用程序。例如,用户原本在package.json中的命令可能是这样的: "packager:win": "electron-packager ./ winApp --platform=win32 --arch=x64 ..." 需要将--arch=x64改为--arch=ia32。同时,可能需要检查平台参数是否正确,比如win32对应Windows系统。 另外,用户可能在配置时需要注意其他依赖项是否兼容32位系统,比如Node.js模块是否有32位版本。但根据引用[3],用户可能在安装依赖时遇到问题,特别是如果镜像配置不正确的话。因此,确保electron的镜像源正确设置,可能会帮助解决安装问题,尤其是在国内网络环境下。 还有,引用[5]提到了preload.js的配置,这可能与应用程序的功能相关,但用户当前的问题主要是打包架构,所以这部分可能暂时不需要考虑。但需要确保在打包时,所有自定义脚本如preload.js被正确包含进去,避免路径错误。 用户可能还关心如何验证生成的应用程序确实是32位的。可能需要指导用户检查生成的可执行文件属性,或者通过命令行工具查看文件头信息。 总结步骤应该是:修改打包命令的架构参数为ia32,确保平台正确,处理可能的依赖问题,并测试生成的应用程序。同时,参考用户提供的引用中的配置示例,调整对应的打包脚本。</think>根据引用[2][4]中提供的打包配置示例,使用electron-quick-start打包32位系统的应用程序需要调整架构参数。具体步骤如下: ### 一、配置打包命令 在package.json中添加/修改脚本命令: ```json "scripts": { "packager:win32": "electron-packager ./ appName --platform=win32 --arch=ia32 --overwrite --ignore=/node_modules", "packager:linux32": "electron-packager ./ appName --platform=linux --arch=ia32 --overwrite --ignore=/node_modules" } ``` 关键参数说明: - `--arch=ia32`:指定32位架构(x86系统) - `--platform=win32`:生成Windows应用 - `--platform=linux`:生成Linux应用 - `appName`需替换为实际应用名称 ### 二、处理依赖问题 1. 若出现npm install报错(如引用[3]所述) ```json "config": { "electron": { "mirror": "https://registry.npmmirror.com/-/binary/electron/" } } ``` 2. 确保安装32位兼容的electron版本: ```bash npm install electron@^32.1.2 --arch=ia32 ``` ### 三、执行打包命令 ```bash npm run packager:win32 # Windows 32位 npm run packager:linux32 # Linux 32位 ``` ### 四、验证生成文件 Windows系统下生成文件路径: ``` ./appName-win32-ia32/appName.exe ``` 可通过文件属性查看是否显示"32-bit executable"标识[^2][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值