← 返回
未分类

iOS代码比对变更

分析两个 Git commit 之间的类(Swift/OC)、UI/配置文件、图片资源(imageset)变动。适用 iOS 项目。
分析两个 Git commit 之间的类(Swift/OC)、UI/配置文件、图片资源(imageset)变动。适用 iOS 项目。
斌_
未分类 community v1.0.0 1 版本 98876.4 Key: 无需
★ 0
Stars
📥 88
下载
💾 0
安装
1
版本
#latest

概述

Git 提交类与图片变动分析

触发场景

  • 用户说"从 A 到 B 变更"、"比较 A 和 C"、"A -> B 有什么改动"
  • 版本发布前对比两个 tag/commit
  • PR review 时对照变更范围
  • 生成版本变更摘要

前置条件

  • 目标为 iOS 项目(Swift / Objective-C / 混编)
  • 两个 commit hash 或 tag(起点 + 终点)
  • 本地 git 仓库

核心逻辑

不是分别查看两个 commit 各自的变动,而是计算从起点到终点的净差异。

错误做法: git show A + git show B(分别输出 A 和 B 的改动)
正确做法: git diff A..B(输出从 A 到 B 的净变化)

操作步骤

1. 获取差异文件列表

git diff --name-status <commit-A>..<commit-B>

2. 过滤业务代码(排除第三方)

  • 排除 Pods/build/.build/ 目录下的文件
  • 只分析项目自身代码,不分析第三方依赖变动

3. 提取类文件

  • Swift:过滤 .swift 文件,提取文件名(含 .swift 扩展名)
  • OC:过滤 .h / .m / .mm 文件,提取文件名(含扩展名)
  • 混编:同时过滤 .swift + .h + .m + .mm

4. 提取 UI/配置文件

  • .xib / .storyboard:UI 布局文件
  • .plist:配置文件
  • .html:H5 页面文件

5. 提取图片资源

  • 过滤 .png / .jpg / .webp / .pdf 等图片文件
  • 合并同一 imageset / appiconset 目录下的多尺寸图片为单个图库条目
  • 排除 Contents.json.colorset/Contents.json.xcassets/Contents.json
  • 图片以图库维度聚合,如 AppIcon.appiconseticon.imageset

6. 分类输出

  • 操作含义:A=新增,D=删除,M=修改,R=重命名
  • 变动类:带扩展名(.swift / .h / .m / .mm)
  • 变动 UI/配置:.xib / .storyboard / .plist / .html
  • 变动图片:以图库维度聚合(忽略 Contents.json)
  • 每个分类末尾附净变化汇总(如:-3 +14,+11 个类)

输出格式

### 变动类

| 类名 | 操作 |
|------|------|
| AppDelegate.swift | 删除 |
| BTApi.swift | 新增 |
| NetworkManager.h | 新增 |
| NetworkManager.m | 新增 |

净变化: -1 +3,+2 个类

### 变动 UI/配置

| 文件 | 操作 |
|------|------|
| LoginViewController.xib | 新增 |
| Main.storyboard | 修改 |
| Info.plist | 修改 |
| about.html | 新增 |

净变化: +3 新增,1 修改

### 变动图片

| 图库 | 操作 | 说明 |
|------|------|------|
| AppIcon.appiconset | 变更 | 多尺寸图标(60/80/87/120/180/1024.png) |
| icon.imageset | 新增 | 3个尺寸图标(60/120/180.png) |

净变化: 1 变更,1 新增

注意事项

  • 大仓库git diff 输出可能很长,务必排除 Pods/build 目录后再分析
  • 重命名检测:git 可能将重命名识别为 D+A 而非 R,需注意路径相似的删除+新增是否实际为重命名
  • Bridging Header.h 文件中可能是桥接头文件而非 OC 类,仍应列出
  • 净变化计算:删除再新增同名文件(路径不同)算删除+新增,不算修改

适用项目

  • iOS (Swift / Objective-C / 混编)
  • Xcode 项目
  • CocoaPods / SPM 管理依赖

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-04-27 15:53 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

MacOCR

user_9a66f56b
使用 macOS 内置 Vision OCR 框架从图片中提取文字。当用户需要在 macOS 上识别图片、截图、照片或扫描文档中的文字时使用。支持简体中文、繁体中文和英文识别。仅适用于支持 Swift 的 macOS 系统。
★ 0 📥 357

元宝插件修复器

user_9a66f56b
因 QClaw 官方暂未提供元宝 Bot 插件,且多次反馈“重启 QClaw 元宝 Bot 仍会失效”的问题未得到解决。故制作该 Skill,基于元宝官方 Bot 脚本,修改适配QClaw。 该 Skill 可用于 QClaw 环境下安装、
★ 0 📥 282

IPA 重签名

user_9a66f56b
|iOS IPA 重签名工具。替换证书、描述文件、Bundle ID 和应用名称,自动处理 Framework 和 dylib 签名顺序,支持配置文件和环境检查向导。
★ 0 📥 99