# 白牌项目改造工具包 - 快速执行指南 ## 🎯 目标 在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 审核!** 🚀