一个基于 Electron 的 iOS / Android 项目重构工具,支持:
- iOS Swift 类前缀替换
- Android 包名与类前缀替换
- 项目图片批量替换(支持仅图片模式)
- 可选未替换图片重编码(用于统一图片产物)
适用场景:
- iOS 马甲包 / Android 马甲包
- App 多版本包 / App Variant / App Clone Workflow
- 包名替换 / 类名前缀替换 / 资源批量替换
- iOS Android 重构工具 / 批量改名工具
说明:本项目仅用于合法合规的软件工程场景(如多环境构建、多品牌版本管理、测试包生成等)。
- Swift 类名前缀替换
- Objective-C(.h/.m/.mm)前缀替换
- 可选重命名文件与 Xcode Group
- 可选工程名一键重命名(
.xcodeproj/.xcworkspace/Podfile/plist) - 可选 xcassets 批量资源前缀重命名
- 可选复制 Pods
- 可选添加随机代码(用于产物差异化)
- 可选输出独立垃圾代码文件(Extension/Helper)
- Kotlin / Java 包名替换
- Android XML 包名引用替换
- Gradle
applicationId/namespace更新 - 包目录结构自动重组
- 可选类前缀替换
- 可选添加随机代码
- 可选输出独立垃圾代码文件(Helper)
- 支持 iOS / Android 图片资源替换
- 支持“只替换项目图片”模式(不处理代码)
- 支持先扫描后替换,展示可替换列表与总数
- 支持手动映射规则
- 支持自动同名匹配(不配置规则时)
- 可选替换后使用新文件名
- 可选未替换图片重编码(PNG/JPEG)
- 可配置忽略目录(
ignoreDirNames) - 可选清理代码注释(Swift/ObjC/Kotlin/Java)
适用于“代码 + 资源”一起处理:
- 选择平台(iOS / Android)
- 选择源文件夹与目标文件夹
- 配置前缀 / 包名参数
- (可选)启用图片替换
- 点击“扫描文件”后执行替换
适用于“仅换图,不改代码”:
- 勾选
只替换项目图片 - 选择平台(iOS / Android)
- 选择目标文件夹(项目目录)
- 选择新图片文件夹
- 点击“扫描文件”查看可替换列表
- 确认后点击“开始替换”
- Node.js 18+(推荐 Node.js 22)
- npm 9+
- macOS / Windows
npm install
npm run startnpm run cli -- --help示例(iOS):
npm run cli -- \
--platform ios \
--source /path/to/src \
--target /path/to/out \
--old-prefix OLD \
--new-prefix NEW \
--ignore-dirs "Pods,build,.git" \
--delete-comments \
--replace-images /path/to/new_images \
--image-auto-match \
--spam-code-out Spam:3npm run test:regression# 通用
npm run build
# macOS
npm run build:mac
npm run build:dmg
# Windows
npm run build:win
npm run build:exe
# 全平台
npm run build:allsrc/
core/ # 核心处理逻辑(iOS/Android/图片)
main/ # Electron 主进程
renderer/ # 前端页面与交互逻辑
tests/ # 回归测试脚本
docs/ # 详细文档
docs/ANDROID_CODE_REPLACEMENT.mddocs/XML_REPLACEMENT_RULES.mddocs/QUICK_BUILD.mddocs/DEVELOPER.mddocs/CONFIG_MANAGEMENT_GUIDE.md
- 建议操作前备份原项目
- 源文件夹与目标文件夹不要设置为同一路径(完整重构模式)
- 图片替换前建议先扫描,确认命中列表
- 启用“替换后使用新图片名”后,请同步检查资源引用
- 启用“未替换图片重编码”后,图片二进制会变化,但应尽量保持视觉不变