参考文档: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

安装和配置

  1. 解压 quickgame-toolkit,切换到解压目录下,并且安装依赖
 # 进入解压目录cd quickgame-toolkit# 安装项目的依赖npm install
  1. quickgame-toolkit 下的"/lib/bin"目录加入系统变量中(例如:/path/quickgame-toolkit/lib/bin,其中"/path/quickgame-toolkit"是解压安装的目录)

  2. 运行 quickgame -V 能够正确显示版本号表示安装成功

  3. 在规范的 rpk 目录下,生成rpk

 # 打包用于测试的rpkquickgame pack# 打包release签名的rpkquickgame pack release

打包Egret开

发的游戏

  1. 编译项目,发布成 微信小游戏,会生成<项目名称>_wxgame 目录
  2. 回到原 egret 工程项目根目录下,通过命令行 egret publish --target wxgame 发布项目

    #注意:如果已经发布好的微信小游戏,只需要拷贝一份出来,将名字命名为:<项目名称>_wxgame)

  3. 拷贝 egret.qggame.js 库到生成的根目录下
  4. 修改 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工程
  1. egret 工程项目下运行
 quickgame egret

默认会在项目同一级目录生成 <项目名称>_quickgame 文件夹; 如果发布的时候修改了游戏的发布目录,需要手动指定游戏的发布文件夹:

 quickgame egret --pub_dir ../myrelease

则会在 myrelease 同一级生成<项目名称>_quickgame 文件夹

  1. 在项目目录下产生了
|-<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             //游戏资源目录

发布

开发完成后,我们发布前,需要使用正式的签名和文件来签名

  1. 增加 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,请根据实际填写'
  1. 在工程的 quickgamesign 目录下创建 release 目录,将私钥文件 private.pem 和证书文件 certificate.pem 拷贝进去
  2. 修改后在游戏项目(如:cocos creator、laya工程项目、egret生成目录)下重新执行命令(如:quickgame cocos releasequickgame laya releasequickgame 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 文件}]
}

调试

  1. 准备好游戏 rpk
    rpk 由 quickgame-toolkit 打包得到

  2. 安装 runtime.apk 包到 OPPO 手机上
    OPPO 小游戏调试器

    注意:安装出现失败,先把已安装的“快应用”卸载了再进行安装(快应用是系统进程,需要点击显示系统进程)

  3. 新建目录

    • 手机上 sdcard 上新建目录 games/,若目录已存在,忽略这一步
    • 将准备好的 rpk 拷贝到手机 sdcard 的 games/
  4. 启动 OPPO 小游戏

    • 点击快应用图标
    • 点击对应的 OPPO 小游戏 tab 下的游戏即可看到效果

    注意:相同游戏 rpk 更新时,需要去“快应用 -> 后右上角的三个点->清除数据”进行清除数据操作

在规范的 rpk <项目名称>_quickgame目录下,生成rpk

  • 打包用于测试的 rpk
    quickgame pack
  • 打包 release 签名的 rpk
    quickgame pack release

注:oppo调试需要借鉴android的logcat来调试,关键字:jswrapper 或者 包名

基于Egret的OPPO小游戏接入相关推荐

  1. 基于Egret的VIVO小游戏接入

    vivo的接入很曲折,搞了两天才把微信小游戏移植到vivo上,没有IDE,官方提供的chrome调试又没作用,所以每次找问题都需要借助console,将步骤一步一步输出,然后定位到问题,每次都要经历: ...

  2. Egret发布oppo小游戏分包加载方式

    Egret发布oppo小游戏分包加载方式 1.首先配置好要分包的路径 2.oppo小游戏加载分包代码 class QG {public static loadStage1(subname: strin ...

  3. 帮你抢小游戏流量红利——oppo小游戏接入指南

    一.平台介绍 OPPO小游戏运行在OPPO手机自带的游戏中心,活跃用户接近一亿,目前小游戏产品接入需要商务审核,审核通过后方可上线. 平台地址请自行搜索,CSDN这里不让发出来. 二.问题记录 (更新 ...

  4. 基于Egret的微信小游戏H5项目总结

    H5 puremvc框架 View 与 Mediator 组合模式 View 上Button Image scrollView的事件在Mediator中实现,View仅仅是皮肤.是界面. 修改界面布局 ...

  5. oppo小游戏接入代码

    oppo接入 oppo获取用户信息 oppo广告接入 oppo获取用户信息 var self = this;qg.login({success: function (res) {//用户uid res ...

  6. LayaAir已支持OPPO小游戏适配与IDE内一键发布!

    LayaAir 2.1.0版本中,已完成对OPPO小游戏的适配与发布功能.今天,我们开启了该功能的开关.已下载使用LayaAirIDE2.1.0版本的开发者,重启IDE进入即可看到功能.老版本IDE的 ...

  7. 微信小游戏接入遇到的坑

    微信小游戏接入遇到的坑 1.微信web开发工具必须安装到C盘,才能被egret wing自动调取. 2.exml文件不能放在src文件夹,必现放在resource文件夹 3.egret Launche ...

  8. 帮你抢小游戏流量红利——360小游戏接入指南

    360小游戏是指360 PC浏览器打开的桌面小程序运行平台 接入平台请戳这里 接入文档请戳这里 (本文根据2019年10月 360平台api和sdk版本总结,后续360平台做了很多优化) 接入不方便的 ...

  9. 帮你抢小游戏流量红利——vivo小游戏接入指南

    vivo小游戏接入指南 一.平台介绍 VIVO小游戏运行在VIVO手机自带的游戏中心,活跃用户接近上亿,目前小游戏产品接入需要商务审核,审核通过后方可上线. 开放平台:https://dev.vivo ...

最新文章

  1. 史上最完整的人工智能书单大全,学习AI的请收藏好
  2. linux /proc/net/tcp 文件分析
  3. Unity3D中常用的数据结构 学习
  4. npm安装依赖包报错
  5. 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
  6. 想跟着微软赛跑会累死你
  7. linux图形开发工具
  8. 运维人员日常工作(转自老男孩)
  9. 命令逐行显示_Linux命令和Shell脚本学习随笔3
  10. 谷歌放弃C++语言,Python将要一统江湖了?
  11. mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...
  12. 翼城中学2021高考成绩查询,临汾中考分数线预测2021
  13. Spring Boot + JPA + Oracle 自增长字段实现示例
  14. python barh_Python matplotlib.axes.Axes.barh()用法及代码示例
  15. 在Android中利用iText生成PDF
  16. Java基础-自增自减运算符练习题
  17. Android Studio导入so文件到项目中
  18. Springboot+CAS下Session过期无效,页面请求302问题解决
  19. 航天宏图PIE-SAR软件高分3数据预处理流程
  20. 在线计算机免费课程表,Simple课程表

热门文章

  1. 记一次TCP丢包带来的重大性能问题
  2. Python获取并输出当前日期当前时间
  3. map.has,map.get,map.set
  4. 解决Jenkins权限配置错误,导致登录时出现没有Overall/read权限
  5. 智慧温室大棚监测系统方案应用
  6. 手机抢票软件哪个好?小编亲身体验下载推荐
  7. EN 1096-4涂层玻璃建筑材料英国UKCA认证—EN 1096-4
  8. 【】 Intel(R) 800 Series序列网卡 ice 驱动安装
  9. js中时间戳转化为具体的年月日
  10. Java 当前时间转农历