# 调试指南
# API 开发流程
在开发过程中,美团小游戏遵循业界主流小游戏的设计规范,提供与行业标准高度对齐的功能 API 接口,已有小游戏项目的代码具备良好的复用性(具体支持内容见下节)。目前平台能够自动兼容前缀为 wx 和 mt 的接口,无需修改代码即可完成适配。当然,为保障产品质量,仍需在美团 App 内进行真机调试并完整验证游戏内容。
# 必须接入的 API
# 接入问题
优先排查游戏内逻辑,规避业务问题。
功能接入失败或 API 调用报错,可查阅本平台开放文档的相关说明及 FAQ,结合报错信息逐步排查解决。
无法解决的问题可以到对接群交流咨询,咨询时需包含以下信息
- 问题描述:使用 xx 参数调用 xx API 出现 xx 报错和 xx 现象,关键代码片段截图或文本
- 复现方式:游戏二维码,及问题的复现路径。(如果关联业务逻辑比较复杂,必要时建议提供关键代码 demo 测试包,便于复现和调试)
# 后端跨域配置
需要业务方的资源服务器添加相应配置以允许 “mgcfile://” 的访问,如果没有配置,游戏加载的远端网络资源对应的服务器不允许 “mgcfile://” 源访问的话,资源就无法加载。
# 真机调试流程
# 安装调试与预览发布工具
请确保本地已经安装 Node.js (Node.js 版本不低于 v14.13.0),然后运行以下命令安装最新版本的 美团小游戏 CLI 工具(mgc-cli-external):
$ npm i -g mgc-cli-external@latest
# 创建美团小游戏配置文件
在游戏项目父目录或者其他目录(注意不要在当前待打包游戏目录或者子目录)执行以下命令
$ mgc config
配置成功后会在当前目录生成配置文件 mgc.config.js,配置示例如下
module.exports = {
"type": "game", // 包类型, 有三种类型可选:game(小游戏)、webgame(h5游戏和应用)、plugin(插件)
"appId": '4503b3691d974573a747ed85f74f1a29', // 游戏的appId
"appSecret": '752d7e4a3b8b4525', // 游戏的appSecret
"entry": './build/wechatgame' // 需要被打包的小游戏的路径
}
# 小游戏 Debug 测试包
在生成 mgc.config.js 的同级目录执行以下命令:
$ mgc debug
执行完上述命令后,如果一切正常,会出现二维码,

# iOS调试
可以使用 美团App (要求版本大于等于11.2.200)进行扫码,此时会从线上拉取 debug 包,待加载完成后,可以点击屏幕中的 debug 按钮查看日志,日志中可以查看。

# Android 调试
可以使用 美团App (需要使用专用的APK测试包, 请找对接人员获取)进行扫码,此时会从线上拉取 debug 包,待加载完成后,可以点击屏幕中右上角胶囊按钮的**...**唤起面板,点击开发者面板进入调试页面,进一步的可以在日志中可以查看游戏日志。


# 发布流程
在生成 mgc.config.js 的同级目录执行以下命令:
$ mgc publish
然后可以在开放平台设置发布即可。

# 流程化接入配置
mgc-cli-external 支持版本:0.0.42
支持通过脚本工具直接调用 mgcCli 工具,用于流程化打包并上传到开放平台。
注意环境中需要安装 mgc-cli-external
$ npm i --save mgc-cli-external@latest
# API列表
# mgcCli.debug(Object object)
# 参数
# Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| srcPath | string | 否 | 游戏项目的根路径,不填写默认当前路径 |
# 返回值
# Success: Promise(Object object)
| 属性 | 类型 | 说明 |
|---|---|---|
| code | number | 0 |
| msg | string | 信息提示 |
| data.url | string | 成功时返回的 imeituan 地址 |
# Fail: Promise(Object object)
| 属性 | 类型 | 说明 |
|---|---|---|
| code | number | -1 |
| msg | string | 信息提示 |
| errMsg | object | 失败时返回接口错误信息 |
# mgcCli.publish(Object object)
# 参数
# Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| remark | string | 是 | 备注 | |
| srcPath | string | 否 | 游戏项目的根路径,不填写默认当前路径 |
# 返回值
# Success: Promise(Object object)
| 属性 | 类型 | 说明 |
|---|---|---|
| code | number | 0 |
| msg | string | 信息提示 |
# Fail: Promise(Object object)
| 属性 | 类型 | 说明 |
|---|---|---|
| code | number | -1 |
| msg | string | 信息提示 |
| errMsg | object | 失败时返回接口错误信息 |
# 接口示例
# DEBUG 包
const mgcCli = require('mgc-cli-external');
mgcCli.debug().then(res => {
console.log(res);
})
# 预览或线上包
const mgcCli = require('mgc-cli-external');
mgcCli.publish().then(res => {
console.log(res);
})