# 白牌项目测试指南 ## 如何运行新的 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 行