
✅ 完成功能:
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 版本发布分支
7.2 KiB
7.2 KiB
白牌项目版本化改造计划(混合方案 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 TabBar(NewTabBarController,2 个 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
设计要点:
- 隐藏原生 TabBar
- 创建自定义悬浮容器(两侧留白 16pt,底部留白 12pt)
- 液态玻璃效果(iOS 18+)/ 毛玻璃效果(iOS 13-17)
- 圆角胶囊形状(cornerRadius: 28)
- 边框和阴影
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 天
操作:
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
删除以下依赖:
- NIMSDK(IM SDK)
- TXLiteAVSDK_TRTC(TRTC 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 资源(提审必须):
- AppIcon(1 套)
- 启动图(1 张)
- TabBar icon(4 张)
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 构建
xcodebuild -workspace YuMi.xcworkspace \
-scheme YuMi \
-configuration Release \
-archivePath build/YuMi-v0.2.xcarchive \
archive
4.2 导出 IPA
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:
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 个)
- scripts/prepare-v0.2.sh
- scripts/clean-imports-v0.2.sh
- scripts/archive-v0.2.sh
- scripts/export-v0.2.sh
- scripts/prepare-v0.5.sh
- ExportOptions.plist
文档文件(4 个)
- docs/DESIGN_ASSETS_CHECKLIST.md
- docs/APPSTORE_METADATA_v0.2.md
- docs/TEST_CHECKLIST_v0.2.md
- docs/WHITE_LABEL_ROADMAP.md
代码文件(white-label-base,4 个)
- YuMi/Modules/NewTabBar/NewTabBarController.swift(重构)
- YuMi/Modules/NewMine/Controllers/NewMineViewController.m(重构)
- YuMi/Modules/NewMine/Views/NewMineHeaderView.h/m(新建)
- YuMi/Appdelegate/AppDelegate.m(修改)
优势总结
vs 编译宏方案:
- ✅ 主分支代码干净(无宏污染)
- ✅ 实施简单(提审前删除即可)
- ✅ 维护成本低(主分支正常开发)
- ✅ 灵活性高(可随时调整删除内容)
- ✅ IPA 安全(物理删除,无残留)
核心理念:
"主分支保持完整和干净,发布分支作为一次性的打包工具。"