Similarity Helper / 文档 / 对比范围
COMPARISON SCOPE / 01

到底能比较什么,
直接看清楚。

Similarity Helper 不是只给两个项目一个总分。它会把 iOS / Xcode 项目拆成代码实体、字符串、资源、配置和依赖等维度,分别统计两边数量、相同数量、相同项列表和相似度。

本地离线运行Swift + Objective-CHTML / JSON / LOG

代码实体与字符串

代码对比关注项目中可以被解析和统计的实体,而不是只按文件名判断。现有报告可以展示 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 数据:适合二次处理、自动归档或接入自己的分析脚本。
  • 文本日志:记录扫描、解析、比较和写出过程,便于确认工具实际处理了什么。

网站只展示经过脱敏的摘要和代表性名称,不公开项目绝对路径、源码片段或完整原始报告。完整明细仍保留在你的本地输出目录中。