代码实体与字符串
代码对比关注项目中可以被解析和统计的实体,而不是只按文件名判断。现有报告可以展示 Swift、Objective-C 代码结构和字符串信号。
| 类别 | 报告中的具体内容 | 报告会展示什么 |
|---|---|---|
| 类型与结构Class、Extension / Category、Protocol、Enum、Struct | 类、扩展 / 分类、协议、Swift 枚举、Objective-C 枚举、结构体及其成员。 | 项目 A / B 数量、相同数量、相似度;部分仅展示类别会明确标记不参与相似度计算。 |
| 成员与函数Property、Method、Function、GlobalSymbol | 属性、方法、全局函数、全局符号,以及协议属性和协议方法。 | 相同项名称列表,例如真实报告中的 contentView、delegate、titleLabel。 |
| 文字信号String literal、Domain、API path | 字符串字面量、字符串域名、字符串形式的 API 路径、字符串常量和宏。 | 用于发现文案、域名、接口路径等结构线索;最小比较字符串长度由配置控制。 |
资源、配置与依赖
资源对比不仅检查“有没有同名文件”,还可以进一步比较文件内容 Hash、目录名称、Plist 键、本地化键值、布局节点和媒体文件。
| 维度 | 可比较的具体内容 | 典型问题 |
|---|---|---|
| 文件与目录 | 文件名、文件内容 Hash、文件夹名、文件夹 Hash、其他文件类型。 | 两个工程是否沿用了相同的资源命名或目录结构?是否存在相同内容文件? |
| 配置与文案 | Plist 文件、Plist 键与值、.strings / .xcstrings 本地化键与值、InfoPlist 文案。 | 工程是否共享相同的配置键、错误文案、登录文案或本地化资源? |
| 界面与媒体 | .storyboard、.xib、.xml 布局文件名、节点值、图片 / 音频 / 视频文件名和 Hash。 | 界面资源或媒体资源是否同名、同内容,或者拥有相同的结构节点? |
| 依赖 | 系统库、外部依赖目录名及相关依赖统计。 | 两个工程是否使用相同的第三方依赖或系统能力? |
真实报告示例:2026 年 4 月 9 日的脱敏对比中,项目 A 与项目 B 共有 18 个相同属性、45 个相同字符串字面量、353 个相同本地化键和 14 个相同文件夹名。首页的报告浏览器可以切换 HTML、JSON 和 LOG 查看这些结果。
结果如何呈现
每个摘要行都围绕同一组问题组织:项目 A 有多少、项目 B 有多少、相同多少、相同项是什么、相似度如何。工具同时在本地写出三种结果格式:
- HTML 报告:适合直接阅读分类摘要、相同项明细和路径对应关系。
- JSON 数据:适合二次处理、自动归档或接入自己的分析脚本。
- 文本日志:记录扫描、解析、比较和写出过程,便于确认工具实际处理了什么。
网站只展示经过脱敏的摘要和代表性名称,不公开项目绝对路径、源码片段或完整原始报告。完整明细仍保留在你的本地输出目录中。