1.前提

  • 安装了 node 环境,建议安装 8.x 稳定版本(8.x 以上版本可能出现不兼容问题) [node 旧版本地址:https://nodejs.org/zh-cn/download/releases/]
  • 开发 Cocos Creator 游戏,需要升级到 2.0.6 及以上版本
  • 开发 Laya 游戏,请使用 LayaAir 2.1.0 beta 或以上版本 [ 官网下载: https://ldc2.layabox.com/layadownload/?type=layaairide ](Laya 1.x 的请使用 1.8.1 以上版本)
  • 开发白鹭游戏,请使用 Egret Launcher 1.0.63 以上版本,白鹭引擎 5.2.19 以上版本
  • manifest.json 中的最小平台版本号 2.6.0 的包对应的是 1040,2.7.0 的包对应的是 1044,2.8.0 的包对应的是 1045,2.9.0 的包对应的是 1050,3.0.0 的包对应的是 1051

  • 请务必要使用 OPPO 手机进行测试!!!
  • 若用户数据存储在本地,需在小游戏主界面提醒用户, 示例如下:

主界面

2.安装和配置

  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
    # 打包用于测试的 rpk
    quickgame pack
    # 打包 release 签名的 rpk
    quickgame pack release
  1. 分包打包文档详细见分包加载,指令如下:
    # 分包打包用于测试的 rpk
    quickgame subpack
    # 分包打包 release 签名的 rpk
    quickgame subpack release

3.打包注意事项

  1. 无关文件不打进 apk
   ①.VCS相关的文件,如.git和.svn目录。
   ②.和游戏无关的隐藏文件,如MacOS、*nix下的"."开头的文件、目录
   ③.无关的截图、文档或者其他文件
  1. 大体积文件压缩
   ①.音频类文件,如wav可以使用mp3来替代
   ②.图片类文件
      # 无透明度的图片可以使用jpg格式,并对jpg图片进行压缩
      # 对所有png图片使用tinypng进行压缩
      # 对于颜色单一、或者效果要求不高的图片使用RGBA565、RGBA4444等格式
      # 使用.9图
      # 切图使用合适的尺寸,不使用过大的尺寸
   ③.避免出现重复资源,尽可能复用资源
  1. 首包的体积限制是 8MB,超过 8MB 的资源需要在进入游戏后进行下载

4.如何使用

4.1 打包 Cocos Creator 开发的游戏

详情见 Cocos Creator 打包 OPPO 小游戏

4.2 打包 Laya 开发的游戏

详情见 Laya OPPO 小游戏发布与调试指南

4.3 打包 Egret 开发的游戏

详情见 Egret OPPO 小游戏发布与调试指南

5.发布

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

5.1 增加 release 签名

  1. 开发者需要自己添加证书,其中 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. 在工程的 quickgame 的 sign 目录下创建 release 目录,将私钥文件 private.pem 和证书文件 certificate.pem 拷贝进去
  2. 修改后在游戏项目(如:cocos creator、laya 工程项目、egret 生成目录)下重新执行命令(如:quickgame cocos releasequickgame laya releasequickgame egret release)即可重新生成 release 签名的游戏包

6.manifest.json 文件

  1. 用于游戏的配置,每次修改后,需要重新打包。
{
  // 游戏包名
  "package": "com.quickgame.demo",
  // 游戏名
  "name": "QuickgameDemo",
  // 游戏版本
  "versionName": "1.0.0",
  // 游戏版本
  "versionCode": "1",
  // 平台版本号
  "minPlatformVersion": "1051",
  // 桌面图标,正方形,默认是 108x108 尺寸,注意替换成自己游戏的 icon
  "icon": "/logo.png",
  // 设备方向,包含 landscape (横屏)和 portrait (竖屏)
  "orientation": "portrait",
  // 不填或者默认值为 app,取值为 app 或 game
  "type": "game",
  // logLevel取值 off,error,warn,info,log,debug,trace
  "config": {
    "logLevel": "off"
  },
  // 分包功能,有分包时才需要,可选字段
  "subpackages": [
    {
      "name": "stage1",
      "root": "stage1/" // 可以指定一个目录,目录下所有js将会统一打包
    },
    {
      "name": "stage2",
      "root": "stage2.js" // 也可以指定一个 JS 文件
    }
  ]
}
© 2020 OPPO. All rights reserved.

results matching ""

    No results matching ""