Files
edwinQQQ a35a711be6 chore: Initial clean commit
- 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
2025-10-09 16:19:14 +08:00
..
2025-10-09 16:19:14 +08:00
2025-10-09 16:19:14 +08:00

白牌项目改造工具包 - 快速执行指南

🎯 目标

在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步走

前置准备

# 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: 类名和文件重命名

# 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 项目文件已更新

验证步骤

# 1. 在 Xcode 中重新打开项目
open YuMi.xcworkspace

# 2. Clean Build Folder
# Xcode: Product → Clean Build Folder (⇧⌘K)

# 3. 尝试编译
# Xcode: Product → Build (⌘B)

# 4. 检查编译错误并修复

Day 6-7: 图片资源替换

# 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 已更新
  • 代码中的图片引用已替换
  • 生成了映射文件备查

验证步骤

# 1. 编译项目
# Xcode: Product → Build

# 2. 运行应用
# Xcode: Product → Run (⌘R)

# 3. 检查关键页面的图片是否正常显示
# - 登录页
# - 首页
# - TabBar
# - 房间页

Week 2: 视觉层改造

Day 8-10: 主题颜色替换

# 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.hAppThemeColor.m
  3. 运行文档中的替换脚本
  4. 手动调整硬编码的颜色值

验证步骤

# 运行应用,检查所有页面的颜色
# 重点检查:
# - TabBar 颜色
# - 导航栏颜色
# - 按钮渐变
# - 背景色
# - 文字颜色

Day 11-12: TabBar 结构调整

手动操作(在 Xcode 中):

  1. 打开 TabbarViewController.m
  2. 找到 TabBar 初始化代码
  3. 调整 Tab 顺序,例如:
    // 旧顺序: 首页 → 消息 → 动态 → 我的
    // 新顺序: 动态 → 首页 → 消息 → 我的
    
    // 或者改变 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.m4605行

// 创建 Category 拆分
// XPRoomViewController+Gift.h/m      - 礼物相关
// XPRoomViewController+PK.h/m        - PK相关
// XPRoomViewController+Game.h/m      - 游戏相关
// XPRoomViewController+Chat.h/m      - 聊天相关

Week 4: 测试和提审

Day 20-23: 功能测试

# 测试检查清单
- [ ] 登录/注册(所有方式)
- [ ] 首页浏览和筛选
- [ ] 进入房间
- [ ] 发送消息
- [ ] 发送礼物
- [ ] 充值流程(测试环境)
- [ ] 个人中心设置
- [ ] 第三方登录Facebook/Google/Apple
- [ ] 推送通知
- [ ] 分享功能
- [ ] 深度链接

Day 24-26: 最终调整

  1. 修复所有测试中发现的 bug
  2. 优化性能(内存泄漏、卡顿)
  3. 更新应用截图5-10张
  4. 撰写新的应用描述

Day 27-30: 提审准备

# 1. 更新 Bundle ID
# 在 Xcode: Targets → General → Bundle Identifier

# 2. 更新 App 名称
# 在 Info.plist: CFBundleDisplayName

# 3. 准备新的 App Store 截图

# 4. 撰写应用描述(完全不同的文案)

# 5. 提交审核

📊 进度追踪

使用以下命令查看当前进度:

# 检查已重命名的类
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"

原因:类名替换不完整

解决

# 搜索旧的类名
grep -r "YMSomeClass" YuMi --include="*.m" --include="*.h"

# 手动替换

Q2: 图片不显示

原因:图片名称替换遗漏

解决

# 1. 检查映射文件
cat issues/temp_rename/asset_name_mapping.json

# 2. 搜索旧的图片名
grep -r "old_image_name" YuMi --include="*.m"

# 3. 手动替换

Q3: 颜色显示异常

原因:硬编码的颜色值未替换

解决

# 搜索硬编码的 hex 颜色
grep -r "0x9682FF" YuMi --include="*.m"
grep -r "UIColorFromRGB" YuMi --include="*.m" | grep "0x"

# 手动替换为 [AppThemeColor xxx]

Q4: TabBar 跳转失败

原因:代码中硬编码了 Tab index

解决

# 搜索 selectedIndex
grep -r "selectedIndex" YuMi --include="*.m"

# 更新所有硬编码的 index

🆘 回滚方案

如果出现严重问题,可以快速回滚:

# 方法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. 查看详细日志

    cat issues/temp_rename/rename_report.txt
    cat issues/temp_rename/assets_rename_report.txt
    
  2. 检查 Git 提交记录

    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 审核! 🚀