基于Egret的OPPO小游戏接入
参考文档:OPPO小游戏打包官方文档
前提
- 安装了 node 环境,建议安装 8.x 稳定版本 [node官网:https://nodejs.org/en/]
- 开发 Cocos Creator 游戏,需要升级到2.0.6及以上版本
- 开发 Laya 游戏,需要 laya air 使用1.7.19或1.7.20版本(暂不支持 Laya2.0)
- 当前
manifest.json
中的平台版本号必须是 1031
安装和配置
- 解压
quickgame-toolkit
,切换到解压目录下,并且安装依赖
# 进入解压目录cd quickgame-toolkit# 安装项目的依赖npm install
将
quickgame-toolkit
下的"/lib/bin"目录加入系统变量中(例如:/path/quickgame-toolkit/lib/bin,其中"/path/quickgame-toolkit"是解压安装的目录)运行
quickgame -V
能够正确显示版本号表示安装成功在规范的 rpk 目录下,生成rpk
# 打包用于测试的rpkquickgame pack# 打包release签名的rpkquickgame pack release
打包Egret开
发的游戏
- 编译项目,发布成 微信小游戏,会生成<项目名称>_wxgame 目录
- 回到原 egret 工程项目根目录下,通过命令行 egret publish --target wxgame 发布项目
#注意:如果已经发布好的微信小游戏,只需要拷贝一份出来,将名字命名为:<项目名称>_wxgame)
- 拷贝 egret.qggame.js 库到生成的根目录下
- 修改
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 文件夹
- 在项目目录下产生了
|-<projectname>_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 //游戏资源目录
发布
开发完成后,我们发布前,需要使用正式的签名和文件来签名
- 增加 release 签名
开发者需要自己添加证书,其中 debug 下面的证书只供调试使用,开发者需要通过 openssl 命令等工具生成签名文件 private.pem、certificate.pem
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 []:demo@oppo.com '备注:此处为Email,请根据实际填写'
- 在工程的
quickgame
的sign
目录下创建release
目录,将私钥文件private.pem
和证书文件certificate.pem
拷贝进去 - 修改后在游戏项目(如:cocos creator、laya工程项目、egret生成目录)下重新执行命令(如:
quickgame cocos release
或quickgame laya release
或quickgame egret release
)即可重新生成release
签名的游戏包
manifest.json 文件修改
用于游戏的配置,每次修改后,需要重新打包。
{// 游戏包名"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 小游戏调试器注意:安装出现失败,先把已安装的“快应用”卸载了再进行安装(快应用是系统进程,需要点击显示系统进程)
新建目录
- 手机上 sdcard 上新建目录
games/
,若目录已存在,忽略这一步 - 将准备好的 rpk 拷贝到手机 sdcard 的
games/
中
- 手机上 sdcard 上新建目录
启动 OPPO 小游戏
- 点击快应用图标
- 点击对应的 OPPO 小游戏 tab 下的游戏即可看到效果
注意:相同游戏 rpk 更新时,需要去“快应用 -> 后右上角的三个点->清除数据”进行清除数据操作
在规范的 rpk <项目名称>_quickgame
目录下,生成rpk
- 打包用于测试的 rpk
quickgame pack
- 打包 release 签名的 rpk
quickgame pack release
注:oppo调试需要借鉴android的logcat来调试,关键字:jswrapper
或者 包名
基于Egret的OPPO小游戏接入相关推荐
- 基于Egret的VIVO小游戏接入
vivo的接入很曲折,搞了两天才把微信小游戏移植到vivo上,没有IDE,官方提供的chrome调试又没作用,所以每次找问题都需要借助console,将步骤一步一步输出,然后定位到问题,每次都要经历: ...
- Egret发布oppo小游戏分包加载方式
Egret发布oppo小游戏分包加载方式 1.首先配置好要分包的路径 2.oppo小游戏加载分包代码 class QG {public static loadStage1(subname: strin ...
- 帮你抢小游戏流量红利——oppo小游戏接入指南
一.平台介绍 OPPO小游戏运行在OPPO手机自带的游戏中心,活跃用户接近一亿,目前小游戏产品接入需要商务审核,审核通过后方可上线. 平台地址请自行搜索,CSDN这里不让发出来. 二.问题记录 (更新 ...
- 基于Egret的微信小游戏H5项目总结
H5 puremvc框架 View 与 Mediator 组合模式 View 上Button Image scrollView的事件在Mediator中实现,View仅仅是皮肤.是界面. 修改界面布局 ...
- oppo小游戏接入代码
oppo接入 oppo获取用户信息 oppo广告接入 oppo获取用户信息 var self = this;qg.login({success: function (res) {//用户uid res ...
- LayaAir已支持OPPO小游戏适配与IDE内一键发布!
LayaAir 2.1.0版本中,已完成对OPPO小游戏的适配与发布功能.今天,我们开启了该功能的开关.已下载使用LayaAirIDE2.1.0版本的开发者,重启IDE进入即可看到功能.老版本IDE的 ...
- 微信小游戏接入遇到的坑
微信小游戏接入遇到的坑 1.微信web开发工具必须安装到C盘,才能被egret wing自动调取. 2.exml文件不能放在src文件夹,必现放在resource文件夹 3.egret Launche ...
- 帮你抢小游戏流量红利——360小游戏接入指南
360小游戏是指360 PC浏览器打开的桌面小程序运行平台 接入平台请戳这里 接入文档请戳这里 (本文根据2019年10月 360平台api和sdk版本总结,后续360平台做了很多优化) 接入不方便的 ...
- 帮你抢小游戏流量红利——vivo小游戏接入指南
vivo小游戏接入指南 一.平台介绍 VIVO小游戏运行在VIVO手机自带的游戏中心,活跃用户接近上亿,目前小游戏产品接入需要商务审核,审核通过后方可上线. 开放平台:https://dev.vivo ...
最新文章
- 史上最完整的人工智能书单大全,学习AI的请收藏好
- linux /proc/net/tcp 文件分析
- Unity3D中常用的数据结构 学习
- npm安装依赖包报错
- 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
- 想跟着微软赛跑会累死你
- linux图形开发工具
- 运维人员日常工作(转自老男孩)
- 命令逐行显示_Linux命令和Shell脚本学习随笔3
- 谷歌放弃C++语言,Python将要一统江湖了?
- mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...
- 翼城中学2021高考成绩查询,临汾中考分数线预测2021
- Spring Boot + JPA + Oracle 自增长字段实现示例
- python barh_Python matplotlib.axes.Axes.barh()用法及代码示例
- 在Android中利用iText生成PDF
- Java基础-自增自减运算符练习题
- Android Studio导入so文件到项目中
- Springboot+CAS下Session过期无效,页面请求302问题解决
- 航天宏图PIE-SAR软件高分3数据预处理流程
- 在线计算机免费课程表,Simple课程表