
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
405 lines
7.7 KiB
Markdown
405 lines
7.7 KiB
Markdown
# 白牌项目改造工具包 - 快速执行指南
|
||
|
||
## 🎯 目标
|
||
在1个月内将 YuMi 项目改造成全新的白牌项目,规避 App Store 审查。
|
||
|
||
---
|
||
|
||
## 📦 工具清单
|
||
|
||
本目录包含以下工具:
|
||
|
||
1. **1_rename_classes.sh** - 类名批量替换脚本
|
||
2. **2_rename_assets.py** - 图片资源批量重命名
|
||
3. **3_theme_color_example.md** - 主题颜色替换方案
|
||
4. **white-label-refactor-plan.md** - 完整的30天改造计划
|
||
|
||
---
|
||
|
||
## ⚡️ 快速开始(3步走)
|
||
|
||
### 前置准备
|
||
|
||
```bash
|
||
# 1. 确保在正确的分支
|
||
cd "/Users/edwinqqq/Local/Company Projects/peko-ios"
|
||
git status
|
||
|
||
# 2. 创建新分支
|
||
git checkout -b white-label-refactor
|
||
|
||
# 3. 提交所有未保存的更改
|
||
git add .
|
||
git commit -m "开始白牌改造前的备份"
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 执行步骤
|
||
|
||
### Week 1: 标识层改造
|
||
|
||
#### Day 1-5: 类名和文件重命名
|
||
|
||
```bash
|
||
# 1. 给脚本添加执行权限
|
||
cd issues/scripts
|
||
chmod +x 1_rename_classes.sh
|
||
|
||
# 2. 运行类名替换脚本(交互式)
|
||
./1_rename_classes.sh
|
||
|
||
# 输入示例:
|
||
# YM → LK
|
||
# XP → SL
|
||
# PI → MT
|
||
# Moli → Nova
|
||
# MS → AS
|
||
```
|
||
|
||
**预期结果**:
|
||
- ✅ 所有类名前缀已替换
|
||
- ✅ 文件名已重命名
|
||
- ✅ 模块文件夹已重命名
|
||
- ✅ Xcode 项目文件已更新
|
||
|
||
**验证步骤**:
|
||
```bash
|
||
# 1. 在 Xcode 中重新打开项目
|
||
open YuMi.xcworkspace
|
||
|
||
# 2. Clean Build Folder
|
||
# Xcode: Product → Clean Build Folder (⇧⌘K)
|
||
|
||
# 3. 尝试编译
|
||
# Xcode: Product → Build (⌘B)
|
||
|
||
# 4. 检查编译错误并修复
|
||
```
|
||
|
||
---
|
||
|
||
#### Day 6-7: 图片资源替换
|
||
|
||
```bash
|
||
# 1. 确保 Python 3 已安装
|
||
python3 --version
|
||
|
||
# 2. 运行图片资源重命名脚本
|
||
python3 2_rename_assets.py
|
||
|
||
# 3. 执行生成的代码替换脚本
|
||
cd ../temp_rename
|
||
chmod +x replace_image_refs.sh
|
||
./replace_image_refs.sh
|
||
```
|
||
|
||
**预期结果**:
|
||
- ✅ 2971个图片资源已重命名
|
||
- ✅ Contents.json 已更新
|
||
- ✅ 代码中的图片引用已替换
|
||
- ✅ 生成了映射文件备查
|
||
|
||
**验证步骤**:
|
||
```bash
|
||
# 1. 编译项目
|
||
# Xcode: Product → Build
|
||
|
||
# 2. 运行应用
|
||
# Xcode: Product → Run (⌘R)
|
||
|
||
# 3. 检查关键页面的图片是否正常显示
|
||
# - 登录页
|
||
# - 首页
|
||
# - TabBar
|
||
# - 房间页
|
||
```
|
||
|
||
---
|
||
|
||
### Week 2: 视觉层改造
|
||
|
||
#### Day 8-10: 主题颜色替换
|
||
|
||
```bash
|
||
# 1. 阅读配色方案文档
|
||
cat 3_theme_color_example.md
|
||
|
||
# 2. 选择一个配色方案(A/B/C)
|
||
|
||
# 3. 手动创建新的颜色类
|
||
# 在 Xcode 中:
|
||
# YuMi/CustomUI/ → New File → Cocoa Touch Class
|
||
# 类名: AppThemeColor
|
||
# 父类: NSObject
|
||
```
|
||
|
||
**实施步骤**:
|
||
1. 复制 `3_theme_color_example.md` 中的示例代码
|
||
2. 创建 `AppThemeColor.h` 和 `AppThemeColor.m`
|
||
3. 运行文档中的替换脚本
|
||
4. 手动调整硬编码的颜色值
|
||
|
||
**验证步骤**:
|
||
```bash
|
||
# 运行应用,检查所有页面的颜色
|
||
# 重点检查:
|
||
# - TabBar 颜色
|
||
# - 导航栏颜色
|
||
# - 按钮渐变
|
||
# - 背景色
|
||
# - 文字颜色
|
||
```
|
||
|
||
---
|
||
|
||
#### Day 11-12: TabBar 结构调整
|
||
|
||
**手动操作**(在 Xcode 中):
|
||
|
||
1. 打开 `TabbarViewController.m`
|
||
2. 找到 TabBar 初始化代码
|
||
3. 调整 Tab 顺序,例如:
|
||
```objc
|
||
// 旧顺序: 首页 → 消息 → 动态 → 我的
|
||
// 新顺序: 动态 → 首页 → 消息 → 我的
|
||
|
||
// 或者改变 Tab 数量
|
||
// 5个 Tab → 4个 Tab(移除某个功能)
|
||
```
|
||
4. 更换所有 TabBar 图标
|
||
5. 修改 TabBar 选中/未选中动画
|
||
|
||
---
|
||
|
||
### Week 3: 代码结构层改造
|
||
|
||
#### Day 13-15: 核心页面 UI 重构
|
||
|
||
**优先级**:
|
||
1. 登录页(必须改)
|
||
2. 首页(必须改)
|
||
3. 房间页(可选择性改)
|
||
4. 个人中心(必须改)
|
||
|
||
**策略**:
|
||
- 不改业务逻辑,只改 UI 布局
|
||
- 使用 Interface Builder → 纯代码(或反之)
|
||
- 改变控件位置和排列方式
|
||
|
||
---
|
||
|
||
#### Day 16-19: 拆分超大类
|
||
|
||
重点处理 `XPRoomViewController.m`(4605行):
|
||
|
||
```objc
|
||
// 创建 Category 拆分
|
||
// XPRoomViewController+Gift.h/m - 礼物相关
|
||
// XPRoomViewController+PK.h/m - PK相关
|
||
// XPRoomViewController+Game.h/m - 游戏相关
|
||
// XPRoomViewController+Chat.h/m - 聊天相关
|
||
```
|
||
|
||
---
|
||
|
||
### Week 4: 测试和提审
|
||
|
||
#### Day 20-23: 功能测试
|
||
|
||
```bash
|
||
# 测试检查清单
|
||
- [ ] 登录/注册(所有方式)
|
||
- [ ] 首页浏览和筛选
|
||
- [ ] 进入房间
|
||
- [ ] 发送消息
|
||
- [ ] 发送礼物
|
||
- [ ] 充值流程(测试环境)
|
||
- [ ] 个人中心设置
|
||
- [ ] 第三方登录(Facebook/Google/Apple)
|
||
- [ ] 推送通知
|
||
- [ ] 分享功能
|
||
- [ ] 深度链接
|
||
```
|
||
|
||
#### Day 24-26: 最终调整
|
||
|
||
1. 修复所有测试中发现的 bug
|
||
2. 优化性能(内存泄漏、卡顿)
|
||
3. 更新应用截图(5-10张)
|
||
4. 撰写新的应用描述
|
||
|
||
#### Day 27-30: 提审准备
|
||
|
||
```bash
|
||
# 1. 更新 Bundle ID
|
||
# 在 Xcode: Targets → General → Bundle Identifier
|
||
|
||
# 2. 更新 App 名称
|
||
# 在 Info.plist: CFBundleDisplayName
|
||
|
||
# 3. 准备新的 App Store 截图
|
||
|
||
# 4. 撰写应用描述(完全不同的文案)
|
||
|
||
# 5. 提交审核
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 进度追踪
|
||
|
||
使用以下命令查看当前进度:
|
||
|
||
```bash
|
||
# 检查已重命名的类
|
||
find YuMi -name "*.m" | grep -v Pods | wc -l
|
||
|
||
# 检查颜色替换进度
|
||
grep -r "DJDKMIMOMColor" YuMi --include="*.m" | wc -l
|
||
grep -r "AppThemeColor" YuMi --include="*.m" | wc -l
|
||
|
||
# 检查图片资源
|
||
ls -l YuMi/Assets.xcassets/**/*.imageset | wc -l
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 常见问题
|
||
|
||
### Q1: 编译错误 "Use of undeclared identifier"
|
||
|
||
**原因**:类名替换不完整
|
||
|
||
**解决**:
|
||
```bash
|
||
# 搜索旧的类名
|
||
grep -r "YMSomeClass" YuMi --include="*.m" --include="*.h"
|
||
|
||
# 手动替换
|
||
```
|
||
|
||
### Q2: 图片不显示
|
||
|
||
**原因**:图片名称替换遗漏
|
||
|
||
**解决**:
|
||
```bash
|
||
# 1. 检查映射文件
|
||
cat issues/temp_rename/asset_name_mapping.json
|
||
|
||
# 2. 搜索旧的图片名
|
||
grep -r "old_image_name" YuMi --include="*.m"
|
||
|
||
# 3. 手动替换
|
||
```
|
||
|
||
### Q3: 颜色显示异常
|
||
|
||
**原因**:硬编码的颜色值未替换
|
||
|
||
**解决**:
|
||
```bash
|
||
# 搜索硬编码的 hex 颜色
|
||
grep -r "0x9682FF" YuMi --include="*.m"
|
||
grep -r "UIColorFromRGB" YuMi --include="*.m" | grep "0x"
|
||
|
||
# 手动替换为 [AppThemeColor xxx]
|
||
```
|
||
|
||
### Q4: TabBar 跳转失败
|
||
|
||
**原因**:代码中硬编码了 Tab index
|
||
|
||
**解决**:
|
||
```bash
|
||
# 搜索 selectedIndex
|
||
grep -r "selectedIndex" YuMi --include="*.m"
|
||
|
||
# 更新所有硬编码的 index
|
||
```
|
||
|
||
---
|
||
|
||
## 🆘 回滚方案
|
||
|
||
如果出现严重问题,可以快速回滚:
|
||
|
||
```bash
|
||
# 方法1: Git 回滚
|
||
git reset --hard HEAD
|
||
git clean -fd
|
||
|
||
# 方法2: 恢复备份
|
||
# 类名替换备份: issues/temp_rename/
|
||
# 图片资源备份: issues/temp_rename/assets_backup/
|
||
# Xcode 项目备份: YuMi.xcodeproj/project.pbxproj.backup
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 技术支持
|
||
|
||
如果遇到无法解决的问题:
|
||
|
||
1. 查看详细日志
|
||
```bash
|
||
cat issues/temp_rename/rename_report.txt
|
||
cat issues/temp_rename/assets_rename_report.txt
|
||
```
|
||
|
||
2. 检查 Git 提交记录
|
||
```bash
|
||
git log --oneline
|
||
git diff
|
||
```
|
||
|
||
3. 分步骤回滚测试
|
||
|
||
---
|
||
|
||
## ✅ 最终检查清单
|
||
|
||
提审前必须确认:
|
||
|
||
- [ ] 所有编译警告已解决
|
||
- [ ] 核心功能测试通过
|
||
- [ ] 没有明显的崩溃
|
||
- [ ] UI 和原项目有显著差异(至少70%)
|
||
- [ ] Bundle ID 已更改
|
||
- [ ] App 名称已更改
|
||
- [ ] 所有图片资源已替换
|
||
- [ ] 主题色已完全不同
|
||
- [ ] 准备好新的应用截图和描述
|
||
- [ ] 第三方 SDK 配置正确
|
||
- [ ] 测试环境和生产环境切换正确
|
||
|
||
---
|
||
|
||
## 📈 成功标准
|
||
|
||
**技术层面**:
|
||
- 代码相似度 < 30%
|
||
- 资源文件完全不同
|
||
- UI 视觉差异 > 70%
|
||
|
||
**审查层面**:
|
||
- App Store 截图无相似性
|
||
- 应用描述和关键词不重复
|
||
- 功能展示有差异化
|
||
|
||
---
|
||
|
||
## 🎉 完成后
|
||
|
||
恭喜!你已经完成了白牌项目的改造。
|
||
|
||
**建议**:
|
||
1. 保留完整的映射文档,便于后续维护
|
||
2. 定期同步原项目的 bug 修复
|
||
3. 使用 Git submodule 或 monorepo 管理多个白牌版本
|
||
|
||
**祝你成功通过 App Store 审核!** 🚀
|
||
|
||
|