Phase 1 Day 2-3: 创建 Moment 和 Mine 模块
- 创建 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 行
This commit is contained in:
183
white-label-test-guide.md
Normal file
183
white-label-test-guide.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# 白牌项目测试指南
|
||||
|
||||
## 如何运行新的 TabBar
|
||||
|
||||
### 方式 1:在 AppDelegate 中替换根控制器(推荐)
|
||||
|
||||
在 `AppDelegate.m` 中找到设置根控制器的代码,临时替换为 NewTabBarController:
|
||||
|
||||
```objc
|
||||
#import "YuMi-Swift.h" // 引入 Swift 类
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
// ... 其他初始化代码
|
||||
|
||||
// 临时使用新的 TabBar(测试用)
|
||||
NewTabBarController *tabBar = [NewTabBarController create];
|
||||
[tabBar refreshTabBarWithIsLogin:YES]; // 模拟已登录状态
|
||||
|
||||
self.window.rootViewController = tabBar;
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
```
|
||||
|
||||
### 方式 2:通过通知切换(推荐用于测试)
|
||||
|
||||
在任意位置发送通知切换到新 TabBar:
|
||||
|
||||
```objc
|
||||
#import "YuMi-Swift.h"
|
||||
|
||||
// 在某个按钮点击或测试代码中
|
||||
NewTabBarController *tabBar = [NewTabBarController create];
|
||||
[tabBar refreshTabBarWithIsLogin:YES];
|
||||
|
||||
UIWindow *window = [UIApplication sharedApplication].keyWindow;
|
||||
window.rootViewController = tabBar;
|
||||
```
|
||||
|
||||
## 测试清单
|
||||
|
||||
### Phase 1 - Day 1-3 测试(基础架构)
|
||||
|
||||
#### 1. APIConfig 域名测试
|
||||
|
||||
```swift
|
||||
// 在 Debug 模式下运行
|
||||
APIConfig.testEncryption()
|
||||
|
||||
// 检查 Console 输出:
|
||||
// Release 域名: https://api.epartylive.com
|
||||
// 当前环境域名: [测试域名]
|
||||
// 备用域名: [测试域名]
|
||||
```
|
||||
|
||||
#### 2. GlobalEventManager 测试
|
||||
|
||||
- [ ] 启动 App,检查 Console 是否输出:
|
||||
- `[GlobalEventManager] SDK 代理设置完成`
|
||||
- `[GlobalEventManager] 通知监听已设置`
|
||||
- `[GlobalEventManager] 房间最小化视图已添加`
|
||||
|
||||
#### 3. NewTabBarController 测试
|
||||
|
||||
- [ ] TabBar 正常显示(2 个 Tab)
|
||||
- [ ] Tab 切换流畅
|
||||
- [ ] Tab 图标正常显示(如果图片存在)
|
||||
- [ ] 主色调应用正确(蓝色系)
|
||||
|
||||
#### 4. NewMomentViewController 测试
|
||||
|
||||
- [ ] 页面正常加载
|
||||
- [ ] 列表正常显示(模拟数据)
|
||||
- [ ] 下拉刷新功能正常
|
||||
- [ ] 滚动到底部自动加载更多
|
||||
- [ ] 发布按钮显示在右下角
|
||||
- [ ] 点击 Cell 显示提示
|
||||
- [ ] 点击发布按钮显示提示
|
||||
|
||||
**UI 检查**:
|
||||
- [ ] 卡片式布局(白色卡片 + 阴影)
|
||||
- [ ] 圆角矩形头像(不是圆形!)
|
||||
- [ ] 底部操作栏(点赞/评论/分享)
|
||||
- [ ] 浅灰色背景
|
||||
- [ ] 15px 左右边距
|
||||
|
||||
#### 5. NewMineViewController 测试
|
||||
|
||||
- [ ] 页面正常加载
|
||||
- [ ] 顶部个人信息卡片显示
|
||||
- [ ] 渐变背景(蓝色渐变)
|
||||
- [ ] 头像(圆角矩形 + 白色边框)
|
||||
- [ ] 昵称、等级显示
|
||||
- [ ] 经验进度条正常
|
||||
- [ ] 关注/粉丝数显示
|
||||
- [ ] 菜单列表正常显示(8 个菜单项)
|
||||
- [ ] 点击菜单项显示提示
|
||||
- [ ] 右上角设置按钮正常
|
||||
|
||||
**UI 检查**:
|
||||
- [ ] 头部高度约 280px
|
||||
- [ ] 渐变背景(蓝色系)
|
||||
- [ ] 所有文字使用白色
|
||||
- [ ] 菜单项高度 56px
|
||||
- [ ] 菜单项带右箭头
|
||||
|
||||
## 预期效果
|
||||
|
||||
### 代码层面
|
||||
- Swift 文件:5 个(APIConfig, NewTabBarController 等)
|
||||
- OC 新文件:6 个(GlobalEventManager, Moment, Mine 模块)
|
||||
- 总新增代码:约 1500 行
|
||||
- 代码相似度:预计 <20%(因为是全新代码)
|
||||
|
||||
### UI 层面
|
||||
- TabBar 只有 2 个 Tab(vs 原来的 5 个)
|
||||
- 完全不同的颜色方案(蓝色系)
|
||||
- 卡片式设计(vs 原来的列表式)
|
||||
- 圆角矩形头像(vs 原来的圆形)
|
||||
- 渐变背景(vs 原来的纯色)
|
||||
|
||||
### 网络层面
|
||||
- DEBUG:使用原测试域名
|
||||
- RELEASE:使用加密的新域名 `https://api.epartylive.com`
|
||||
- 代码中无明文域名
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q1: 编译失败,提示找不到 Swift 类
|
||||
|
||||
**A**: 检查以下配置:
|
||||
1. Build Settings → Defines Module = YES
|
||||
2. Build Settings → Swift Objc Bridging Header = YuMi/YuMi-Bridging-Header.h
|
||||
3. 清理项目:Cmd + Shift + K,然后重新编译
|
||||
|
||||
### Q2: 运行时 Crash,提示 "selector not recognized"
|
||||
|
||||
**A**: 检查:
|
||||
1. Swift 类是否标记了 `@objc`
|
||||
2. 方法是否标记了 `@objc`
|
||||
3. Bridging Header 是否包含了所有需要的 OC 头文件
|
||||
|
||||
### Q3: TabBar 显示但是是空白页面
|
||||
|
||||
**A**: 检查:
|
||||
1. NewMomentViewController 和 NewMineViewController 是否正确初始化
|
||||
2. Console 是否有错误日志
|
||||
3. 尝试直接 push 到这些 ViewController 测试
|
||||
|
||||
### Q4: 图片不显示
|
||||
|
||||
**A**:
|
||||
1. 图片资源还未添加(正常现象)
|
||||
2. 暂时使用 emoji 或文字代替
|
||||
3. 后续会添加新的图片资源
|
||||
|
||||
## 下一步
|
||||
|
||||
Phase 1 - Day 2-3 完成后,继续:
|
||||
|
||||
### Day 4-5: 完善 UI 细节
|
||||
- [ ] 添加真实的图片资源(100-150 张)
|
||||
- [ ] 完善动画效果
|
||||
- [ ] 优化交互体验
|
||||
|
||||
### Day 6-10: 网络层集成
|
||||
- [ ] 创建 HttpRequestHelper Category
|
||||
- [ ] 集成真实 API
|
||||
- [ ] 测试网络请求
|
||||
|
||||
### Day 11-15: 全面测试
|
||||
- [ ] 功能测试
|
||||
- [ ] 性能测试
|
||||
- [ ] 相似度检查
|
||||
- [ ] 准备提审
|
||||
|
||||
---
|
||||
|
||||
**更新时间**: 2025-10-09
|
||||
**当前进度**: Phase 1 - Day 2-3 完成
|
||||
**文件数量**: 11 个新文件
|
||||
**代码量**: ~1500 行
|
Reference in New Issue
Block a user