
- 创建 NewMomentViewController(OC) * 列表式布局 + 下拉刷新 + 滚动加载 * 发布按钮(右下角悬浮) * 使用模拟数据 - 创建 NewMomentCell(OC) * 卡片式设计(白色卡片 + 阴影) * 圆角矩形头像(不是圆形!) * 底部操作栏(点赞/评论/分享) - 创建 NewMineViewController(OC) * TableView 布局 + 8 个菜单项 * 设置按钮(右上角) - 创建 NewMineHeaderView(OC) * 渐变背景(蓝色系) * 圆角矩形头像 + 白色边框 * 昵称、等级、经验进度条 * 关注/粉丝统计 * 纵向卡片式设计 - 集成到 NewTabBarController * 使用真实的 ViewController 替换占位 * 支持登录前/后状态切换 - 更新 Bridging Header * 添加新模块的 OC 类引用 - 创建测试指南文档 * 如何运行新 TabBar * 测试清单 * 常见问题解答 新增文件: - NewMomentViewController.h/m - NewMomentCell.h/m - NewMineViewController.h/m - NewMineHeaderView.h/m - white-label-test-guide.md 代码量:约 1500 行
146 lines
4.4 KiB
Markdown
146 lines
4.4 KiB
Markdown
# 白牌项目改造进度
|
||
|
||
## 已完成(Phase 1 - Day 1)
|
||
|
||
### 1. 分支管理
|
||
- ✅ 创建 `white-label-base` 分支
|
||
- ✅ Swift 6.2 环境验证通过
|
||
|
||
### 2. API 域名动态生成(XOR + Base64)
|
||
- ✅ 创建 `YuMi/Config/APIConfig.swift`
|
||
- DEV 环境:自动使用原测试域名
|
||
- RELEASE 环境:使用加密的新域名 `https://api.epartylive.com`
|
||
- 加密值生成并验证成功
|
||
- 包含降级方案
|
||
|
||
### 3. Swift/OC 混编配置
|
||
- ✅ 创建 `YuMi/YuMi-Bridging-Header.h`
|
||
- 引入必要的 OC 头文件
|
||
- 支持 Network、Models、Managers、Views、SDKs
|
||
|
||
### 4. 全局事件管理器
|
||
- ✅ 创建 `YuMi/Global/GlobalEventManager.h/m`
|
||
- 迁移 NIMSDK 代理设置
|
||
- 迁移房间最小化逻辑
|
||
- 迁移全局通知处理
|
||
- 迁移 RoomBoomManager 回调
|
||
- 迁移社交分享回调
|
||
|
||
### 5. Swift TabBar 控制器
|
||
- ✅ 创建 `YuMi/Modules/NewTabBar/NewTabBarController.swift`
|
||
- 只包含 Moment 和 Mine 两个 Tab
|
||
- 自定义新的 TabBar 样式(新主色调)
|
||
- 集成 GlobalEventManager
|
||
- 支持登录前/后状态切换
|
||
|
||
## 已完成(Phase 1 - Day 2-3)
|
||
|
||
### 1. Xcode 项目配置
|
||
- ✅ 新文件自动添加到 Xcode 项目
|
||
- ✅ Bridging Header 已更新,包含新模块
|
||
- ✅ Swift/OC 混编配置完成
|
||
|
||
### 2. 创建 Moment 模块(OC)
|
||
- ✅ 创建 NewMomentViewController.h/m
|
||
- 列表式布局
|
||
- 下拉刷新
|
||
- 滚动加载更多
|
||
- 发布按钮(右下角悬浮)
|
||
- ✅ 创建 NewMomentCell.h/m
|
||
- 卡片式设计(白色卡片 + 阴影)
|
||
- 圆角矩形头像(不是圆形!)
|
||
- 底部操作栏(点赞/评论/分享)
|
||
- 使用模拟数据
|
||
- ✅ 设计新的 UI 布局(完全不同)
|
||
|
||
### 3. 创建 Mine 模块(OC)
|
||
- ✅ 创建 NewMineViewController.h/m
|
||
- TableView 布局
|
||
- 8 个菜单项
|
||
- 设置按钮
|
||
- ✅ 创建 NewMineHeaderView.h/m
|
||
- 渐变背景(蓝色系)
|
||
- 圆角矩形头像 + 白色边框
|
||
- 昵称、等级、经验进度条
|
||
- 关注/粉丝统计
|
||
- 纵向卡片式设计
|
||
- ✅ 设计新的 UI 布局(完全不同)
|
||
|
||
### 4. 集成到 TabBar
|
||
- ✅ NewTabBarController 集成新模块
|
||
- ✅ 支持登录前/后状态切换
|
||
|
||
## 下一步(Phase 1 - Day 4-5)
|
||
|
||
### 1. 编译测试
|
||
- [ ] 构建项目,修复编译错误
|
||
- [ ] 运行 App,测试基本功能
|
||
- [ ] 检查 Console 日志
|
||
|
||
### 2. UI 资源准备
|
||
- [ ] 准备 TabBar icon(4 张:2 tab × 2 状态)
|
||
- [ ] 准备 Moment 模块图标(30-40 张)
|
||
- [ ] 准备 Mine 模块图标(50-60 张)
|
||
- [ ] 设计 AppIcon 和启动图
|
||
|
||
## 关键技术细节
|
||
|
||
### API 域名加密值
|
||
```swift
|
||
Release 域名加密值:
|
||
"JTk5PT53YmI=", // https://
|
||
"LD0kYw==", // api.
|
||
"KD0sPzk0ISQ7KGMuIiA=", // epartylive.com
|
||
|
||
验证:https://api.epartylive.com ✅
|
||
```
|
||
|
||
### 全局逻辑迁移清单
|
||
|
||
| 原位置 (TabbarViewController.m) | 功能 | 迁移目标 | 状态 |
|
||
|----------------------------------|------|----------|------|
|
||
| Line 156-159 | NIMSDK delegates | GlobalEventManager | ✅ |
|
||
| Line 164-167 | 房间最小化通知 | GlobalEventManager | ✅ |
|
||
| Line 169-178 | 配置重载通知 | GlobalEventManager | ✅ |
|
||
| Line 179-181 | 充值/主播卡片通知 | GlobalEventManager | ✅ |
|
||
| Line 190-200 | RoomBoomManager | GlobalEventManager | ✅ |
|
||
| Line 202 | 社交回调 | GlobalEventManager | ✅ |
|
||
|
||
## 文件清单
|
||
|
||
### 新建文件
|
||
1. `YuMi/Config/APIConfig.swift`
|
||
2. `YuMi/YuMi-Bridging-Header.h`
|
||
3. `YuMi/Global/GlobalEventManager.h`
|
||
4. `YuMi/Global/GlobalEventManager.m`
|
||
5. `YuMi/Modules/NewTabBar/NewTabBarController.swift`
|
||
|
||
### 待创建文件(Day 2-5)
|
||
1. `YuMi/Modules/NewMoments/Controllers/NewMomentViewController.h/m`
|
||
2. `YuMi/Modules/NewMoments/Views/NewMomentCell.h/m`
|
||
3. `YuMi/Modules/NewMine/Controllers/NewMineViewController.h/m`
|
||
4. `YuMi/Modules/NewMine/Views/NewMineHeaderView.h/m`
|
||
|
||
## 注意事项
|
||
|
||
### Swift/OC 混编
|
||
- 所有需要在 Swift 中使用的 OC 类都要加入 Bridging Header
|
||
- Swift 类要暴露给 OC 需要用 `@objc` 标记
|
||
- Xcode 会自动生成 `YuMi-Swift.h`,OC 代码通过它引入 Swift 类
|
||
|
||
### 编译问题排查
|
||
如果编译失败,检查:
|
||
1. Bridging Header 路径是否正确
|
||
2. 所有引用的 OC 类是否存在
|
||
3. Build Settings 中的 DEFINES_MODULE 是否为 YES
|
||
4. Swift 版本是否匹配
|
||
|
||
### API 域名测试
|
||
DEBUG 模式下可以调用 `APIConfig.testEncryption()` 验证加密解密是否正常。
|
||
|
||
---
|
||
|
||
**更新时间**: 2025-10-09
|
||
**当前分支**: white-label-base
|
||
**进度**: Phase 1 - Day 1 完成
|