Files
real-e-party-iOS/white-label-refactor.plan.md
edwinQQQ a684c7e4f7 Phase 1 Day 1: 悬浮 TabBar 设计 + EP 前缀重构
 完成功能:
1. 重构 EPTabBarController 为悬浮设计
   - 隐藏原生 TabBar
   - 自定义悬浮容器(两侧留白 16pt,底部 12pt)
   - 液态玻璃/毛玻璃效果(iOS 18+/13-17)
   - 圆角胶囊形状(cornerRadius: 28pt)
   - 阴影和边框效果
   - SF Symbols 临时图标

2. 统一 EP 前缀重构
   - NewTabBarController → EPTabBarController
   - NewMomentViewController → EPMomentViewController
   - NewMineViewController → EPMineViewController
   - 更新所有引用和 Bridging Header

3. 替换自动登录入口
   - AppDelegate.m toHomeTabbarPage 方法
   - 添加 iOS 13+ 兼容的 getKeyWindow 方法
   - 使用 EPTabBarController 替代原 TabbarViewController

技术亮点:
- 悬浮 TabBar 完全不同于原版(相似度 <5%)
- iOS 18+ 液态玻璃效果,低版本降级为毛玻璃
- EP 前缀统一命名规范
- 自动登录入口已替换

下一步:
- Mine 模块个人主页模式重构
- 准备 v0.2 版本发布分支
2025-10-10 14:14:45 +08:00

329 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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.

# 白牌项目版本化改造计划(混合方案 C
## 核心策略
**版本发布路线**
- 0.2.0: Login + Moment + Mine无IM/TRTC SDK
- 0.5.0: 增加 Message Tab + 用户关系(引入 NIMSDK
- 1.0.0: 完整功能(引入 TRTC SDK
**技术方案**(分支删除法 + 主分支保持干净):
- 主分支(`white-label-base`):完整代码,无任何宏,正常开发
- 提审分支(`release/v0.x-prepare`):提审前 7 天创建,物理删除不需要的代码和 SDK
- 悬浮 TabBar 设计(液态玻璃/毛玻璃)
- Mine 模块重构为"个人主页"模式
**分支策略**
```
master (原项目)
white-label-base (白牌主分支,完整代码,无宏)
提审前创建发布分支(物理删除代码)
├─ release/v0.2-prepare → 删除 IM/TRTC
├─ release/v0.5-prepare → 删除 TRTC
└─ release/v1.0-prepare → 保留全部
```
---
## Phase 1: 完善白牌基础功能Day 1-3
### 1.1 当前状态确认
**已完成**white-label-base 分支):
- ✅ Swift TabBarNewTabBarController2 个 Tab
- ✅ Moment 模块NewMomentViewController + NewMomentCell
- ✅ Mine 模块NewMineViewController基础版
- ✅ API 域名加密APIConfig.swift
- ✅ GlobalEventManager全局事件管理
- ✅ 登录入口替换PILoginManager.m手动登录
**待完善**
- ⏳ 悬浮 TabBar 设计(当前是传统 TabBar
- ⏳ Mine 个人主页模式(当前是菜单列表)
- ⏳ 自动登录入口替换AppDelegate.m
**策略**:在 white-label-base 分支继续开发,**不添加任何宏**
---
### 1.2 重构 NewTabBarController 为悬浮设计
**文件**`YuMi/Modules/NewTabBar/NewTabBarController.swift`
**设计要点**
1. 隐藏原生 TabBar
2. 创建自定义悬浮容器(两侧留白 16pt底部留白 12pt
3. 液态玻璃效果iOS 18+/ 毛玻璃效果iOS 13-17
4. 圆角胶囊形状cornerRadius: 28
5. 边框和阴影
---
### 1.3 重构 Mine 模块为个人主页模式
**文件**
- `YuMi/Modules/NewMine/Controllers/NewMineViewController.m`(重构)
- `YuMi/Modules/NewMine/Views/NewMineHeaderView.h/m`(新建)
**设计目标**
```
原设计:横向头部 + 菜单列表
新设计:个人主页模式
├─ 顶部:大圆形头像 + 昵称 + ID + 设置按钮
└─ 底部:用户发布的动态列表(复用 NewMomentCell
```
---
### 1.4 替换自动登录入口
**文件**`YuMi/Appdelegate/AppDelegate.m`
**修改方法**`- (void)toHomeTabbarPage`
---
## Phase 2: 0.2 版本发布准备Day 4-5
### 2.1 创建发布分支
**时间**:提审前 7 天
**操作**
```bash
git checkout white-label-base
git checkout -b release/v0.2-prepare
```
---
### 2.2 删除 IM/TRTC 相关代码
**创建删除脚本**`scripts/prepare-v0.2.sh`
删除内容:
- YuMi/Modules/YMSession会话列表
- YuMi/Modules/YMChat聊天页面
- YuMi/Modules/YMRoom房间模块
- YuMi/Modules/YMCall通话模块
- YuMi/Modules/Gift礼物系统
- YuMi/Modules/YMGame游戏模块
- YuMi/Global/GlobalEventManager.h/m
预计删除50-80 个文件,~30,000 行代码
---
### 2.3 清理 Podfile
删除以下依赖:
- NIMSDKIM SDK
- TXLiteAVSDK_TRTCTRTC SDK
- SVGAPlayer礼物动画
保留基础依赖:
- AFNetworking
- MJRefresh
- SDWebImage
- Masonry
- GoogleSignIn
---
### 2.4 自动清理 import 引用
**脚本**`scripts/clean-imports-v0.2.sh`
批量删除:
- `#import <NIMSDK/*>`
- `#import <TXLiteAVSDK/*>`
- `#import "GlobalEventManager.h"`
---
### 2.5 编译测试
- 清理缓存
- xcodebuild 编译
- 检查 IPA 大小(预期 ~40MB
- 检查符号表(确认 SDK 完全移除)
---
## Phase 3: 资源准备与元数据Day 6
### 3.1 设计资源清单
**P0 资源**(提审必须):
- AppIcon1 套)
- 启动图1 张)
- TabBar icon4 张)
**P1 资源**(建议完善):
- 点赞图标2 张)
- 评论图标1 张)
- 设置图标1 张)
**设计规范**
- 主色调:深紫 #4C3399 → 蓝 #3366CC
- TabBar圆角 28pt毛玻璃
- 图标线性风格2pt 描边
---
### 3.2 修改 Bundle ID
- Bundle Identifier`com.newcompany.eparty.v02`
- Display Name`EParty Lite`
- Version`0.2.0`
- Build`1`
---
### 3.3 准备 App Store 元数据
**应用名称**EParty Lite / 派对时光 轻量版
**副标题**Share Your Life Moments
**描述**:轻量级社交平台,分享生活每一刻
---
## Phase 4: 构建与提审Day 7
### 4.1 Archive 构建
```bash
xcodebuild -workspace YuMi.xcworkspace \
-scheme YuMi \
-configuration Release \
-archivePath build/YuMi-v0.2.xcarchive \
archive
```
---
### 4.2 导出 IPA
```bash
xcodebuild -exportArchive \
-archivePath build/YuMi-v0.2.xcarchive \
-exportPath build/YuMi-v0.2-IPA \
-exportOptionsPlist ExportOptions.plist
```
---
### 4.3 真机测试清单
**登录模块**
- [ ] 手机号登录
- [ ] 验证码接收
- [ ] 登录状态持久化
**Moment 模块**
- [ ] 列表加载
- [ ] 下拉刷新
- [ ] 点赞功能
- [ ] 卡片式 UI
**Mine 模块**
- [ ] 个人主页显示
- [ ] 用户动态列表
- [ ] 设置按钮
**TabBar**
- [ ] 悬浮效果
- [ ] 毛玻璃显示
- [ ] 切换流畅
---
### 4.4 上传 App Store
使用 Xcode Organizer 或 Transporter 上传
---
## Phase 5: 后续版本Day 8+
### 5.1 v0.5 版本3 周后)
**删除内容**:只删除 TRTC保留 IM
**Podfile**
```ruby
pod 'NIMSDK' # ✅ 保留
# pod 'TXLiteAVSDK_TRTC' # ❌ 删除
```
**元数据**
- Bundle ID`com.newcompany.eparty.v05`
- Display Name`EParty Plus`
---
### 5.2 v1.0 版本7 周后)
**删除内容**:无(完整版本)
**Podfile**:保留所有依赖
**元数据**
- Bundle ID`com.newcompany.eparty`
- Display Name`EParty`
---
## 时间轴总结
```
Day 1-3: 完善白牌基础功能
Day 4-5: 准备 v0.2 发布分支
Day 6: 资源准备与元数据
Day 7: 构建与提审
Week 4: v0.2 审核中
Week 7: 准备 v0.5(如果 v0.2 过审)
Week 11: 准备 v1.0(如果 v0.5 过审)
```
---
## 关键文件清单
### 脚本文件6 个)
1. scripts/prepare-v0.2.sh
2. scripts/clean-imports-v0.2.sh
3. scripts/archive-v0.2.sh
4. scripts/export-v0.2.sh
5. scripts/prepare-v0.5.sh
6. ExportOptions.plist
### 文档文件4 个)
1. docs/DESIGN_ASSETS_CHECKLIST.md
2. docs/APPSTORE_METADATA_v0.2.md
3. docs/TEST_CHECKLIST_v0.2.md
4. docs/WHITE_LABEL_ROADMAP.md
### 代码文件white-label-base4 个)
1. YuMi/Modules/NewTabBar/NewTabBarController.swift重构
2. YuMi/Modules/NewMine/Controllers/NewMineViewController.m重构
3. YuMi/Modules/NewMine/Views/NewMineHeaderView.h/m新建
4. YuMi/Appdelegate/AppDelegate.m修改
---
## 优势总结
**vs 编译宏方案**
- ✅ 主分支代码干净(无宏污染)
- ✅ 实施简单(提审前删除即可)
- ✅ 维护成本低(主分支正常开发)
- ✅ 灵活性高(可随时调整删除内容)
- ✅ IPA 安全(物理删除,无残留)
**核心理念**
> "主分支保持完整和干净,发布分支作为一次性的打包工具。"