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

7.2 KiB
Raw Blame History

白牌项目版本化改造计划(混合方案 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 天

操作

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 Identifiercom.newcompany.eparty.v02
  • Display NameEParty Lite
  • Version0.2.0
  • Build1

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 IDcom.newcompany.eparty.v05
  • Display NameEParty Plus

5.2 v1.0 版本7 周后)

删除内容:无(完整版本)

Podfile:保留所有依赖

元数据

  • Bundle IDcom.newcompany.eparty
  • Display NameEParty

时间轴总结

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 安全(物理删除,无残留)

核心理念

"主分支保持完整和干净,发布分支作为一次性的打包工具。"