参考文档:OPPO小游戏打包官方文档
manifest.json
中的平台版本号必须是 1031quickgame-toolkit
,切换到解压目录下,并且安装依赖 # 进入解压目录
cd quickgame-toolkit
# 安装项目的依赖
npm install
将 quickgame-toolkit
下的"/lib/bin"目录加入系统变量中(例如:/path/quickgame-toolkit/lib/bin,其中"/path/quickgame-toolkit"是解压安装的目录)
运行 quickgame -V
能够正确显示版本号表示安装成功
在规范的 rpk 目录下,生成rpk
# 打包用于测试的rpk
quickgame pack
# 打包release签名的rpk
quickgame pack release
发的游戏
#注意:如果已经发布好的微信小游戏,只需要拷贝一份出来,将名字命名为:<项目名称>_wxgame)
game.js
,将 require('./egret.wxgame.js')
修改为 require('./egret.qggame.js')
,注释代码,如下所示 // require('./weapp-adapter.js');
// require('./platform.js');
require('./manifest.js');
require('./egret.qggame.js');
// if(window.RES && RES.processor) {
// require('./library/image.js');
// require('./library/text.js');
// require('./library/sound.js');
// require('./library/binary.js');
// }
#注意:这里有个特殊要说明的,oppo的
quickgame
没法指定源目录,只能指定发布目录,所以项目的目录结果需要特殊说明一下,oppo的quickgame
指令在执行时,会找它当前目录名a
的上级目录的a_wxgame
作为他的源,所以命令执行是在a目录下,而对应的微信小游戏项目目录,需要跟a
同一个目录。 在没有指定发布目录时,发布目录a_quickgame
也是跟a
同一个目录。目录结构如下:
|-
|-a // quickgame egret 的执行目录
|-a_wxgame //微信小游戏工程
|-a_quickgame //最后发布的oppo工程
egret
工程项目下运行 quickgame egret
默认会在项目同一级目录生成 <项目名称>_quickgame 文件夹; 如果发布的时候修改了游戏的发布目录,需要手动指定游戏的发布文件夹:
quickgame egret --pub_dir ../myrelease
则会在 myrelease 同一级生成<项目名称>_quickgame 文件夹
|-_quickgame
|-dist //最终的rpk包
|-com.demo.rpk //rpk包
|-sign //签名
|-debug //测试证书,默认生成,开发者也可以自己修改
|-certificate.pem //证书
|-private.pem //私钥
|-release //正式证书,开发者自己添加
|-certificate.pem //证书
|-private.pem //私钥
|-main.js //项目入口文件
|-logo.png //桌面图标(正方形),开发者自己替换
|-manifest.json //可以配置包名、版本号、授权、图标位置、横竖屏等
|-js //游戏相关逻辑代码
|-egret.qggame.js //快应用前端适配库
|-resource //游戏资源目录
开发完成后,我们发布前,需要使用正式的签名和文件来签名
openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem
#注意:openssl工具在linux或IOS下终端直接打开,windows下需要安装openssl工具并且配置系统环境变量【http://slproweb.com/products/Win32OpenSSL.html】
#例子如下:
#输入命令
openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem
#结果
Generating a 2048 bit RSA private key
................................................................................
................................................................................
.....+++
............................+++
writing new private key to 'private.pem'
-----
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', The field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GuangDong '备注:此处省份,请根据实际填写'
Locality Name (eg, city) []:Shenzhen'备注:此处市,请根据实际填写'
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OPPO'备注:此处为组织或公司,请根据实际填写'
Organizational Unit Name (eg, section) []:OPPO '备注:此处为部门,请根据实际填写'
Common Name (e.g. server FQDN or YOUR name) []:Demo '备注:此处为通用名,请根据实际填写'
Email Address []:[email protected] '备注:此处为Email,请根据实际填写'
quickgame
的 sign
目录下创建 release
目录,将私钥文件 private.pem
和证书文件 certificate.pem
拷贝进去quickgame cocos release
或quickgame laya release
或 quickgame egret release
)即可重新生成 release
签名的游戏包用于游戏的配置,每次修改后,需要重新打包。
{
// 游戏包名
"package": "com.quickgame.demo",
// 游戏名
"name": "QuickgameDemo",
// 游戏版本
"versionName": "1.0.0",
// 游戏版本
"versionCode": "1",
// 平台版本号
"minPlatformVersion": "1031",
// 桌面图标,正方形,默认是 108x108 尺寸,注意替换成自己游戏的 icon
"icon": "/logo.png",
// 设备方向,包含landscape(横屏)和portrait(竖屏)
"orientation": "landscape",
// 分包功能,有分包时才需要,可选字段
"subpackages": [
{
"name": "stage1",
"root": "stage1/" // 可以指定一个目录,目录下所有js将会统一打包
},
{
"name": "stage2",
"root": "stage2.js" // 也可以指定一个 JS 文件
}
]
}
准备好游戏 rpk
rpk 由 quickgame-toolkit 打包得到
安装 runtime.apk 包到 OPPO 手机上
OPPO 小游戏调试器
注意:安装出现失败,先把已安装的“快应用”卸载了再进行安装(快应用是系统进程,需要点击显示系统进程)
新建目录
games/
,若目录已存在,忽略这一步games/
中启动 OPPO 小游戏
注意:相同游戏 rpk 更新时,需要去“快应用 -> 后右上角的三个点->清除数据”进行清除数据操作
<项目名称>_quickgame
目录下,生成rpkquickgame pack
quickgame pack release
注:oppo调试需要借鉴android的logcat来调试,关键字:jswrapper
或者 包名