CocosCreator 幸运武侠游戏客户端编译发布文档

掌柜的
2025-10-27

CocosCreator 幸运武侠游戏客户端

​编译发布文档


1. 网络配置

1.1 游戏服务器配置

配置文件:assets/app/net/NetConfig.ts

export class NetConfig {    // WebSocket类型:wss(生产)或 ws(开发)    public wsType: string = "wss";    // HTTP类型:https(生产)或 http(开发)    public httpType: string = "https";    // 游戏服务器地址    public gameIp: string = "game.example.com";    // IM即时通讯服务器地址    public imIp: string = "im.example.com/api/v1";    public imWsIp: string = "im.example.com/websocket";    // 端口配置    public httpPort: string = "7443";    public gamePort: string = "7444";    // WebSocket后缀路径    public suffix: string = "/lua/web_socket";    // 微信分享图片和页面URL    public wxShareImgUrl: string = "https://cdn.example.com/sharepage/share.jpg";    public sharePageUrl: string = "https://cdn.example.com/sharepage/index.html"; }

1.2 开发环境配置

开发环境下会自动切换到测试服务器:

if (DEV) {    netConfig.gameIp = "game-dev.example.com"; }

1.3 Android网络安全配置

配置文件:native/engine/android/app/src/main/res/xml/network_config.xml

此配置文件主要用于允许明文HTTP流量和信任用户安装的证书,包含穿山甲广告SDK所需的域名白名单。

注意事项:

  • 生产环境建议关闭明文流量:cleartextTrafficPermitted="false"
  • 开发调试时可设置为true
  • 确保所有第三方SDK的域名都已添加到白名单

2. 微信配置

2.1 微信AppID配置

位置1: Android原生配置

  • 文件:native/engine/android/app/src/com/bluelaugh/lma/AppConst.java
  • 参数:WX_AppId = "your_wechat_appid"

位置2: 微信开放平台

2.2 微信小游戏SDK使用

SDK文件:assets/app/native-sdk/WXMiniGame.ts

主要功能

1. 登录功能

WXMiniGame.instance.login({    success: (res) => {    console.log("登录成功", res.code);    },    fail: (err) => {    console.error("登录失败", err);    } });

2. 广告激励视频

WXMiniGame.instance.showAd((status: boolean) => {    if (status) {    console.log("广告播放完成,发放奖励");    } });

3. 复制文本

WXMiniGame.instance.copyText("复制内容",    () => console.log("复制成功"),    (error) => console.error("复制失败", error) );

4. 分享功能

WXMiniGame.instance.shareAppMessage("分享标题", "roomid123",    () => console.log("分享成功"),    (error) => console.error("分享失败", error) );

5. 获取游戏圈数据

WXMiniGame.instance.getGameClubData([1, 2, 3],    (res) => console.log("获取成功", res),    (error) => console.error("获取失败", error) );

6. 版本更新检查

WXMiniGame.instance.checkUpdate();

2.3 激励视频广告配置

  • 广告单元ID: your_wechat_ad_unit_id(在WXMiniGame.ts第10行配置)
  • 需要在微信公众平台的"流量主"->"广告管理"中创建广告位
  • 获取广告位ID后替换viewId变量

2.4 游戏圈配置

  • OpenLink: 在WXMiniGame.ts第11行配置
  • 用于打开微信游戏圈功能
  • 需要向微信申请游戏圈权限并获取OpenLink

3. 抖音小游戏配置

3.1 抖音小游戏SDK使用

SDK文件:assets/app/native-sdk/TTMiniGame.ts

主要功能

1. 登录并获取用户信息

TTMiniGame.instance.login(    (res: LoginResponse) => {    if (res.code === '0') {    console.log("用户授权成功", res.userInfo);    } else {    console.log("用户拒绝授权,匿名登录");    }    },    (error) => console.error("登录失败", error) );

2. 广告激励视频

TTMiniGame.instance.showAd((status: boolean) => {    if (status) {    console.log("广告播放完成,发放奖励");    } });

3. 跳转到侧边栏

TTMiniGame.instance.goSidebar(    () => console.log("跳转成功"),    (error) => console.error("跳转失败", error) );

4. 复制文本

TTMiniGame.instance.copyText("复制内容",    () => console.log("复制成功"),    (error) => console.error("复制失败", error) );

5. 分享功能

TTMiniGame.instance.shareAppMessage("分享标题", "roomid123",    () => console.log("分享成功"),    (error) => console.error("分享失败", error) );

6. 每日分享

TTMiniGame.instance.dailyShare((status: boolean) => {    if (status) {    console.log("每日分享成功");    } });

7. 版本更新检查

TTMiniGame.instance.checkUpdate();

8. 二进制转Base64

const base64Str = TTMiniGame.instance.setBufferToBase64(arrayBuffer);

3.2 激励视频广告配置

  • 广告单元ID: your_douyin_ad_unit_id(在TTMiniGame.ts第21行配置)
  • 需要在抖音小游戏开发者平台的"流量主"->"广告管理"中创建广告位
  • 获取广告位ID后替换viewId变量

3.3 配置说明

在抖音开发者平台(https://microapp.bytedance.com/)完成以下配置:

  1. 创建小游戏应用
  2. 配置服务器域名
  3. 配置业务域名
  4. 开通广告流量主功能
  5. 创建激励视频广告位

4. TapTap SDK配置

4.1 TapTap配置参数

配置文件:native/engine/android/app/src/com/bluelaugh/lma/AppConst.java

public static String TapTap_Client = "your_taptap_client_id"; public static String TapTap_Token = "your_taptap_client_token"; public static String TapTap_ServerUrl = "https://your-server.taptap.example.com"; public static boolean TapTap_Ad = false;  // 是否启用TapTap广告 public static boolean FirstGame = true;  // 是否为首款游戏

4.2 TapTap配置步骤

  1. 注册开发者账号

  2. 获取Client ID和Client Token

    • 在TapTap开发者中心的"游戏服务"->"应用配置"中获取
    • 将Client ID和Client Token替换到AppConst.java中
  3. 配置服务器地址

    • 使用TapPlay提供的共享域名或申请专属域名
    • 替换TapTap_ServerUrl参数
  4. 集成SDK

    • TapSDK已通过AAR包形式集成在native/engine/android/app/libs/目录
    • 确保build.gradle中已正确引用

4.3 功能说明

  • TapTap登录: 提供第三方登录功能
  • 内建账户系统: 提供用户注册、登录、密码找回等功能
  • 好友系统: 提供好友添加、查询等功能
  • 成就系统: 提供游戏成就的展示和统计
  • 排行榜: 提供游戏数据排行功能

5. 穿山甲广告配置

5.1 穿山甲配置参数

配置文件:native/engine/android/app/src/com/bluelaugh/lma/AppConst.java

public static String CSJ_AppId = "your_csj_appid";  // 穿山甲应用ID public static String CSJ_AppName = "游戏名称";  // 应用名称 public static String CSJ_RewardAdId = "your_csj_ad_id";  // 激励视频广告位ID

5.2 穿山甲配置步骤

  1. 注册穿山甲账号

  2. 创建应用

    • 在"应用管理"中创建Android应用
    • 填写应用信息,上传应用图标
    • 获取App ID
  3. 创建广告位

    • 在"代码位管理"中创建广告位
    • 选择"激励视频"广告类型
    • 获取广告位ID(代码位ID)
  4. 配置网络安全

    • 穿山甲相关域名已在network_config.xml中配置
    • 包含以下域名:
pangolin.snssdk.com api-access.pangolin-sdk-toutiao.com log-api.pangolin-sdk-toutiao.com 等穿山甲相关域名

5.3 广告调用

广告功能通过微信和抖音SDK的showAd方法统一调用:

// 微信环境 WXMiniGame.instance.showAd((status) => {    if (status) {    // 广告播放完成,发放奖励    } }); // 抖音环境 TTMiniGame.instance.showAd((status) => {    if (status) {    // 广告播放完成,发放奖励    } });

5.4 注意事项

  • 测试时使用穿山甲提供的测试ID
  • 正式上线前替换为正式的广告位ID
  • 确保网络安全配置正确,否则广告加载会失败
  • 建议添加广告加载超时机制
  • 合理控制广告展示频率,避免影响用户体验

6. 好游快爆配置

6.1 好游快爆配置参数

配置文件:native/engine/android/app/src/com/bluelaugh/lma/AppConst.java

public static String HYKB_AppId = "your_hykb_appid";  // 好游快爆应用ID

6.2 好游快爆配置步骤

  1. 申请接入

  2. 获取AppID

    • 提交游戏信息审核
    • 审核通过后获取AppID
  3. 集成SDK

    • 好游快爆SDK已通过AAR包形式集成
    • 确保在native/engine/android/app/libs/目录中包含好游快爆SDK
  4. 配置参数

    • 将获取的AppID替换到AppConst.java中的HYKB_AppId

6.3 功能说明

好游快爆SDK提供以下功能:

  • 用户登录: 提供好游快爆账号登录
  • 悬浮球: 显示好游快爆悬浮球入口
  • 论坛: 跳转到游戏论坛
  • 客服: 在线客服功能
  • 用户中心: 用户信息管理

6.4 注意事项

  • 需要在好游快爆平台配置游戏包名
  • 测试时需要使用好游快爆提供的测试包
  • 正式上线需要通过好游快爆的审核

7. Excel转JSON工具使用

7.1 工具位置

Cocos Creator编辑器路径:

扩展 -> libsExcel转json与js

7.2 Excel文件位置

Excel配置表存放路径:excel/

7.3 使用步骤

  1. 准备Excel文件

    • 将配置表Excel文件放入excel/目录
    • Excel格式要求:
      • 第一行:字段注释(中文说明)
      • 第二行:字段名(英文,代码中使用)
      • 第三行:字段类型(number、string、boolean等)
      • 第四行开始:数据内容
  2. 打开转换工具

    • 打开Cocos Creator编辑器
    • 点击菜单栏"扩展"
    • 选择"libsExcel转json与js"
  3. 执行转换

    • 在弹出的面板中选择要转换的Excel文件
    • 点击"转换"按钮
    • 工具会自动生成JSON和TS类型定义文件
  4. 生成文件位置

    • JSON数据文件:assets/app/tables/ 目录
    • TypeScript类型定义:assets/app/tables/ 目录

7.4 Excel配置示例

| 说明  | ID  | 名称  | 等级  | 攻击力 | 防御力 | | 字段  | id  | name  | level | attack | defense | | 类型  | number | string  | number | number | number | | 数据1  | 1  | 新手剑  | 1  | 10  | 5  | | 数据2  | 2  | 铁剑  | 5  | 25  | 10  |

7.5 代码中使用

import { 表名Table } from "./tables/表名Table"; // 获取配置数据 const config = 表名Table.instance.get(id); console.log(config.name, config.attack);

7.6 注意事项

  • Excel文件必须保存为.xlsx格式
  • 字段名不能使用中文或特殊字符
  • 字段名不能与TypeScript关键字冲突
  • ID字段建议设为第一列,便于快速查找
  • 修改Excel后需要重新转换才能生效
  • 转换前建议备份旧的JSON文件

8. 热更新配置

8.1 热更新原理

项目使用oops-plugin-hot-update插件实现热更新功能,支持增量更新。

8.2 热更新资源目录

生成路径: oops_framework_remote/(与assets同级)

此目录用于存放热更新资源:

  • 版本配置文件
  • 资源清单文件
  • 更新包文件

8.3 构建配置

方法1:通过Cocos Creator构建面板

  1. 打开构建发布面板

    • 菜单栏 -> 项目 -> 构建发布
  2. 选择平台

    • 选择目标平台(Android、iOS、Web等)
  3. 配置热更新选项

    • 找到"oops-plugin-hot-update"配置项
    • 勾选"是否生成数据"
    • 配置以下参数:
□ 是否生成数据: ✓ 勾选 □ 版本号: 1.0.0 □ 资源服务器地址: https://your-cdn.com/remote/ □ 生成路径: oops_framework_remote
  1. 执行构建

    • 点击"构建"按钮
    • 构建完成后,热更新文件会生成在oops_framework_remote/目录

方法2:通过构建脚本配置

在项目的build-templates/目录下配置热更新参数。

8.4 热更新文件结构

oops_framework_remote/ ├── version.manifest  # 版本清单文件 ├── project.manifest  # 项目清单文件 └── [平台名]/    ├── assets/  # 资源文件    ├── src/  # 脚本文件    └── ...

8.5 部署热更新资源

  1. 上传到CDN

    • 将oops_framework_remote/目录上传到CDN服务器
    • 确保URL可访问
  2. 配置服务器地址

    • 在游戏启动时配置热更新服务器地址
    • 示例:
const remoteUrl = "https://your-cdn.com/remote/";
  1. 测试热更新

    • 修改游戏代码或资源
    • 重新构建并生成热更新包
    • 上传到CDN
    • 启动旧版本游戏测试热更新流程

8.6 版本管理

版本号规则: 遵循语义化版本规范(Semantic Versioning)

主版本号.次版本号.修订号 例如: 1.0.0 -> 首次发布 1.0.1 -> 修复bug 1.1.0 -> 新增功能 2.0.0 -> 重大更新

注意事项:

  • 每次构建热更新包时需要递增版本号
  • 版本号必须大于线上版本才能触发更新
  • 建议为不同平台维护独立的版本号

8.7 热更新流程

游戏启动    ↓ 检查本地版本    ↓ 连接更新服务器    ↓ 比对版本清单    ↓ [需要更新] → 下载更新包 → 解压安装 → 重启游戏    ↓ [无需更新] → 直接进入游戏

8.8 注意事项

  • 原生平台代码修改(如Java、Objective-C)不支持热更新
  • 热更新仅适用于脚本和资源文件
  • 重大更新建议提交应用商店,引导用户更新整包
  • 建议设置热更新超时时间,避免用户长时间等待
  • 测试时注意清除本地缓存,确保热更新流程正常

9. Android端构建发布

9.1 构建前准备

  1. 检查配置文件

    • 确认AppConst.java中所有配置参数正确
    • 确认network_config.xml配置完整
  2. 检查SDK集成

    • 微信SDK
    • TapTap SDK
    • 穿山甲SDK
    • 好游快爆SDK
  3. 准备签名文件

    • Android签名证书(.keystore文件)
    • 记录keystore密码、alias和alias密码

9.2 Cocos Creator构建配置

  1. 打开构建发布面板

    • 菜单栏 -> 项目 -> 构建发布
  2. 基础配置

发布平台: Android 游戏名称: 游戏名称 包名: com.example.yourpackage Target API Level: 33 (建议) APP ABI: armeabi-v7a, arm64-v8a
  1. 图标和启动画面

    • 配置应用图标(各种尺寸)
    • 配置启动画面
  2. 签名配置

签名: 勾选 证书路径: [选择.keystore文件] 证书密码: **** Alias: **** Alias密码: ****
  1. 热更新配置

oops-plugin-hot-update ├─ 是否生成数据: ✓ 勾选 ├─ 版本号: 1.0.0 ├─ 资源服务器地址: https://your-cdn.com/remote/ └─ 生成路径: oops_framework_remote
  1. 其他配置

使用调试密钥库: 取消勾选(发布时) 生成App Bundle(Google Play): 按需勾选

9.3 执行构建

  1. 点击"构建"按钮

    • 等待构建完成
    • 构建产物位置:build/android/
  2. 查看构建日志

    • 检查是否有错误或警告
    • 确认所有资源正确打包
  3. 生成APK

    • 构建完成后会自动生成APK文件
    • 文件位置:build/android/proj/build/outputs/apk/

9.4 Android Studio编译(可选)

如果需要在Android Studio中进一步调试或打包:

  1. 导入项目

    • 打开Android Studio
    • 选择"Open an existing project"
    • 选择build/android/proj/目录
  2. Gradle同步

    • 等待Gradle同步完成
    • 如有依赖问题,根据提示解决
  3. 配置签名

    • Build -> Generate Signed Bundle / APK
    • 选择APK
    • 选择签名证书
    • 选择构建类型(Release)
  4. 编译打包

    • Build -> Build Bundle(s) / APK(s) -> Build APK(s)
    • 等待编译完成
    • 生成的APK在proj/app/build/outputs/apk/

9.5 测试APK

  1. 安装测试

    • 在真机上安装APK
    • 测试启动和基础功能
  2. 功能测试清单

    • 登录功能(微信/TapTap)
    • 网络连接
    • 广告播放
    • 分享功能
    • 热更新功能
    • 音效和音乐
    • 各个游戏功能
  3. 性能测试

    • 检查内存占用
    • 检查CPU使用率
    • 检查电量消耗
    • 检查网络流量

9.6 发布到应用商店

准备材料

  1. 应用信息

    • 应用名称:游戏名称
    • 应用描述
    • 应用分类:游戏
    • 关键词
  2. 图片素材

    • 应用图标(512x512)
    • 应用截图(至少3张)
    • 宣传图
    • 宣传视频(可选)
  3. 证书和资质

    • 软件著作权证书
    • ICP备案号
    • 游戏版号(必须)
    • 文化部备案

发布渠道

国内主流应用商店:

  • 应用宝(腾讯)
  • 华为应用市场
  • 小米应用商店
  • OPPO软件商店
  • vivo应用商店
  • 360手机助手
  • 百度手机助手

国际应用商店:

  • Google Play(需要开发者账号)
  • TapTap(游戏专属平台)

9.7 版本更新流程

  1. 准备新版本

    • 修改代码/资源
    • 更新版本号(versionName和versionCode)
    • 更新更新日志
  2. 构建新版本

    • 按照9.2-9.3步骤重新构建
    • 确保版本号大于当前线上版本
  3. 生成热更新包

    • 勾选"是否生成数据"
    • 设置新的版本号
    • 生成热更新资源
  4. 测试

    • 测试整包更新
    • 测试热更新流程
  5. 发布

    • 上传热更新资源到CDN
    • 提交新版本APK到应用商店

9.8 常见问题

问题1:签名失败

  • 检查keystore文件路径是否正确
  • 检查密码是否正确
  • 确保alias存在

问题2:SDK初始化失败

  • 检查AppID、AppKey等配置参数
  • 检查网络权限配置
  • 查看logcat日志排查具体原因

问题3:资源加载失败

  • 检查资源是否正确打包
  • 检查资源路径是否正确
  • 检查Bundle配置

问题4:热更新失败

  • 检查CDN地址是否可访问
  • 检查版本号是否正确递增
  • 检查manifest文件是否生成

问题5:应用闪退

  • 查看logcat日志
  • 检查必要的权限是否声明
  • 检查native代码是否正确

9.9 性能优化建议

  1. 资源优化

    • 压缩图片资源
    • 使用纹理压缩格式(ETC2、ASTC)
    • 合理使用图集(Atlas)
  2. 代码优化

    • 避免频繁的GC
    • 对象池复用
    • 减少drawcall
  3. 包体积优化

    • 删除未使用的资源
    • 使用远程资源
    • 启用代码混淆
  4. 网络优化

    • 使用WebSocket保持连接
    • 合理设置网络超时时间
    • 实现断线重连机制

10. 附录

10.1 相关文档链接

10.2 技术栈

  • 游戏引擎: Cocos Creator 3.8.7
  • 开发语言: TypeScript
  • 开发框架: XForge
  • 网络协议: WebSocket + HTTP/HTTPS
  • 热更新: oops-plugin-hot-update
  • 配置工具: Excel转JSON

10.3 项目结构

luckDef/ ├── assets/  # 游戏资源和代码 │  ├── app/  # 核心代码 │  │  ├── net/  # 网络模块 │  │  ├── native-sdk/  # 原生SDK封装 │  │  ├── tables/  # 配置表 │  │  └── ... │  ├── app-bundle/  # Bundle资源 │  └── resources/  # 资源文件 ├── native/  # 原生代码 │  └── engine/android/  # Android原生代码 ├── excel/  # Excel配置表 ├── oops_framework_remote/  # 热更新资源 ├── build/  # 构建产物 └── package.json  # 项目配置

10.4 联系方式

如有问题,请联系项目开发团队

EMail: lishupeng@msvc.com.cn

文档版本: 1.0

最后更新: 2025-10-27

维护者: 沧海笑游戏

阅读40
分享
写评论...