Files
real-e-party-iOS/white-label-test-guide.md
edwinQQQ 98fb194718 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 行
2025-10-09 17:54:32 +08:00

4.9 KiB
Raw Permalink Blame History

白牌项目测试指南

如何运行新的 TabBar

方式 1在 AppDelegate 中替换根控制器(推荐)

AppDelegate.m 中找到设置根控制器的代码,临时替换为 NewTabBarController

#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

#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 域名测试

// 在 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 个 Tabvs 原来的 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 行