gratitude.durian.xpcool.com/WECHAT_ADAPTATION_SUMMARY.md
2026-08-14 18:01:45 +08:00

433 lines
9.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 报恩榴莲 - 微信小游戏适配完成总结
## ✅ 已完成工作
### 1. 核心代码适配
#### main.js - 微信入口文件
**位置**: `E:\xxcool\project\gratitude.durian.xpcool.com\js\main.js`
**功能**:
- ✅ 微信环境初始化
- ✅ 音频中断处理(来电/通知自动暂停/恢复)
- ✅ 加载进度显示
- ✅ 性能监控和 GC 调度
- ✅ 广告预加载
- ✅ 设备信息上报
**关键代码**:
```javascript
// 监听音频中断
wx.onAudioInterruptionBegin(() => this.pauseAudio());
wx.onAudioInterruptionEnd(() => this.resumeAudio());
// 性能优化
wx.setPreferredFramesPerSecond(60);
```
---
#### AdManager.ts - 广告管理器
**位置**: `cocos-prototype/assets/scripts/core/AdManager.ts`
**优化内容**:
- ✅ 微信广告 SDK 完整集成
- ✅ 激励视频广告(复活、道具)
- ✅ 插屏广告(关卡结束)
- ✅ 广告频控每日最多18次间隔60秒
- ✅ 广告预加载机制
- ✅ 错误处理和降级策略
- ✅ 数据统计上报
**新增方法**:
```typescript
AdManager.showReviveAd(onReward, onClose); // 复活广告
AdManager.showRemoveFruitAd(onReward, onClose); // 道具广告
AdManager.showInterstitial(onComplete); // 插屏广告
AdManager.preloadAds(); // 预加载
AdManager.getStats(); // 获取统计
```
---
#### AudioManager.ts - 音频管理器
**位置**: `cocos-prototype/assets/scripts/core/AudioManager.ts`
**优化内容**:
- ✅ 微信音频中断监听和自动恢复
- ✅ 音频源池化5个并发音效
- ✅ BGM 淡入淡出效果
- ✅ 内存管理(深度清理)
- ✅ 状态监控接口
**新增方法**:
```typescript
audioManager.deepClean(); // 深度清理内存
audioManager.getStatus(); // 获取状态
audioManager._initWeChatAudio(); // 微信音频初始化
```
**中断处理流程**:
```
来电/通知 → onAudioInterruptionBegin
→ 暂停所有音频
→ 记录BGM状态
通话结束 → onAudioInterruptionEnd
→ 恢复BGM如果之前正在播放
→ 音效不自动恢复(瞬时播放)
```
---
#### SaveManager.ts - 存档管理器
**位置**: `cocos-prototype/assets/scripts/core/SaveManager.ts`
**优化内容**:
- ✅ 微信存储 API 优先wx.setStorageSync / wx.getStorageSync
- ✅ 降级到 localStorageWeb 环境)
- ✅ 双备份机制(主存储 + 备份)
- ✅ 自动保存每30秒
- ✅ 存档版本迁移
- ✅ 数据导入/导出
- ✅ 微信云存储支持(可选)
**新增功能**:
```typescript
saveManager.exportSave(); // 导出存档Base64
saveManager.importSave(data); // 导入存档
saveManager.uploadToCloud(); // 上传云端(需云开发)
saveManager.downloadFromCloud(); // 下载云端
saveManager.getSaveSize(); // 存档大小
saveManager.stopAutoSave(); // 停止自动保存
```
**存储策略**:
```
保存时:
1. 先保存到 backup key
2. 再保存到主 key
3. 失败时从 backup 恢复
加载时:
1. 尝试从主 key 加载
2. 失败时从 backup key 恢复
3. 都失败则使用默认数据
```
---
### 2. 配置文件
#### wechat-config.js - 性能配置
**位置**: `cocos-prototype/wechat-config.js`
**包含**:
- 性能参数FPS、最大水果数、对象池大小
- 分包配置core、levels、audio、ui
- 资源加载策略
- GC 优化设置
- 调试监控配置
**关键配置**:
```javascript
performance: {
targetFPS: 60,
maxFruitsOnScreen: 40,
gcInterval: 30000,
memoryWarningThreshold: 200,
}
subpackages: [
{ name: 'core', root: 'subpackages/core/' },
{ name: 'levels', root: 'subpackages/levels/', lazy: true },
{ name: 'audio', root: 'subpackages/audio/', lazy: true },
]
```
---
### 3. 构建脚本
#### build-wechat.bat / build-wechat.ps1
**位置**: `cocos-prototype/build-wechat.*`
**功能**:
- ✅ 自动清理旧构建
- ✅ 执行 Cocos Creator 构建
- ✅ 资源优化(预留压缩接口)
- ✅ 生成版本信息
- ✅ 计算包体大小
- ✅ 检查主包限制(≤ 20MB
**使用方法**:
```bash
# PowerShell推荐
.\build-wechat.ps1 -Version "1.0.0"
# Batch
build-wechat.bat
```
---
### 4. 文档体系
#### WECHAT_OPTIMIZATION_GUIDE.md
**内容**:
- 性能指标要求
- 包体优化技巧
- 内存管理策略
- 渲染优化方法
- 音频优化指南
- 网络优化建议
- 低端机适配方案
- 构建发布流程
**重点章节**:
1. 代码分包策略
2. 对象池实现示例
3. GC 触发时机
4. Draw Calls 优化
5. 真机测试步骤
---
#### WECHAT_DEPLOYMENT_GUIDE.md
**内容**:
- 测试前准备清单
- 本地测试流程
- 真机测试要点
- 常见问题排查
- 上传到微信后台
- 提交审核指南
- 运营与维护建议
- 数据分析模板
**关键流程**:
```
构建 → 模拟器测试 → 真机测试 → 上传 → 提交审核 → 发布
```
---
#### WECHAT_QUICK_REFERENCE.md
**内容**:
- 快速开始命令
- 包体限制速查
- 常用微信 API
- 资源规范
- 调试技巧
- 性能优化速查
- 关键指标
- 上线清单
**用途**: 开发时快速查阅的速查卡
---
## 📊 技术亮点
### 1. 完善的错误处理
所有关键模块都有 try-catch 和降级策略:
```typescript
try {
// 尝试微信 API
wx.setStorageSync(key, data);
} catch (e) {
// 降级到 localStorage
localStorage.setItem(key, data);
}
```
### 2. 智能的资源管理
- 对象池减少 GC 压力
- 资源预加载提升体验
- 自动清理防止内存泄漏
### 3. 数据安全保障
- 双备份存档机制
- 版本迁移支持
- 导入/导出功能
### 4. 性能监控完善
- FPS 实时监控
- 内存占用预警
- 广告展示频控
- 数据统计上报
---
## 🎯 下一步行动
### 立即执行(今天)
1. **替换广告位 ID**
```typescript
// AdManager.ts
AD_UNIT_ID_REVIVE = 'adunit-你的真实ID';
AD_UNIT_ID_REMOVE_FRUIT = 'adunit-你的真实ID';
AD_UNIT_ID_INTERSTITIAL = 'adunit-你的真实ID';
```
2. **构建微信包**
```bash
.\build-wechat.ps1 -Version "1.0.0"
```
3. **微信开发者工具测试**
- 导入 `build/wechatgame` 目录
- 模拟器基础功能测试
---
### 本周内完成
4. **真机测试**
- iOS 设备测试
- Android 设备测试
- 低端机兼容性测试
- 广告展示验证
5. **性能优化**
- 根据测试结果调整参数
- 压缩资源文件
- 优化启动速度
6. **准备提审材料**
- 截取 5 张 gameplay 截图
- 编写游戏简介
- 准备图标和宣传图
---
### 两周内完成
7. **提交审核**
- 登录微信公众平台
- 上传版本
- 提交审核
8. **数据监控准备**
- 设置数据看板
- 配置事件埋点
- 准备运营计划
---
## 📈 预期效果
### 性能指标
| 指标 | 目标值 | 当前状态 |
|------|--------|----------|
| 启动时间 | < 3s | 已优化 |
| FPS | 60 | 已配置 |
| 内存占用 | < 200MB | 已监控 |
| 包体大小 | < 20MB | 需验证 |
| 崩溃率 | < 1% | 已优化 |
### 商业指标(预估)
| 指标 | 目标值 |
|------|--------|
| 次日留存 | > 30% |
| 7日留存 | > 10% |
| 广告完成率 | > 60% |
| eCPM | > ¥50 |
| ARPU | > ¥0.5 |
---
## 🔍 验收清单
### 代码层面
- [x] main.js 微信环境初始化完成
- [x] AdManager 广告频控实现
- [x] AudioManager 中断处理完成
- [x] SaveManager 双备份机制完成
- [x] 性能配置文件创建
### 文档层面
- [x] 优化指南编写完成
- [x] 部署指南编写完成
- [x] 速查卡制作完成
- [x] 构建脚本测试通过
### 待完成
- [ ] 真机测试
- [ ] 广告位 ID 替换
- [ ] 包体大小验证
- [ ] 提审材料准备
---
## 💡 使用建议
### 给开发者
1. **阅读顺序**:
- 先看 `WECHAT_QUICK_REFERENCE.md` 了解概况
- 构建时参考 `build-wechat.ps1`
- 遇到问题查 `WECHAT_OPTIMIZATION_GUIDE.md`
- 提审前看 `WECHAT_DEPLOYMENT_GUIDE.md`
2. **关键注意点**:
- 广告必须真机测试
- 主包不能超过 20MB
- 启动时间控制在 3 秒内
- 定期清理内存防止泄漏
3. **调试技巧**:
- 使用 vConsole 查看真机日志
- 微信开发者工具的 Performance 面板
- 埋点数据上报验证
### 给测试人员
1. **测试重点**:
- 广告能否正常展示和完成
- 存档是否持久化
- 音频中断后是否恢复
- 长时间运行是否卡顿
2. **测试设备**:
- iPhone 8 或以上iOS
- 中高端 Android 机
- 如有可能,测试低端机
---
## 📞 技术支持
### 问题反馈
如遇到技术问题,请提供:
1. 设备型号和系统版本
2. 错误日志截图
3. 复现步骤
4. 性能数据FPS、内存
### 资源链接
- 微信小游戏文档: https://developers.weixin.qq.com/minigame/dev/guide/
- Cocos Creator 文档: https://docs.cocos.com/creator/3.8/manual/zh/
- 微信开放社区: https://developers.weixin.qq.com/community/
---
## ✨ 总结
本次微信小游戏适配工作已完成以下核心内容:
**代码适配**: 4个核心模块全面优化
**配置文件**: 性能参数和分包策略完善
**构建脚本**: 自动化构建流程就绪
**文档体系**: 4份详细文档覆盖全流程
**项目已具备上线条件**,只需:
1. 替换广告位 ID
2. 真机测试验证
3. 准备提审材料
4. 提交微信审核
祝《报恩榴莲》上线顺利,大获成功!🎉🍈
---
**最后更新**: 2026-08-14
**适配版本**: v1.0.0
**适用平台**: 微信小游戏
**开发引擎**: Cocos Creator 3.8