LOCAL-FIRST · iOS PROJECT ANALYSIS

看见两个 iOS 项目之间的
真实相似度

从 Swift / Objective-C 代码实体,到资源、配置和依赖。Similarity Helper 在本地完成扫描与对比,让复用、合并和交付前检查有据可查。

先看可以比较什么

项目路径和分析结果留在本地,不需要上传源码。

similarity-run / localREADY

$ similarity-helper compare

› 项目A LegacyApp.xcodeproj

› 项目B NextApp.xcodeproj

ANALYZING CODE + RESOURCES100%
整体相似度48.72%
匹配类别18
代码实体1,284
报告格式HTML / JSON

✓ report generated locally

01 本地离线运行 02 Swift + Objective-C 03 配置驱动 04 HTML / JSON / LOG
WHAT EXACTLY IS COMPARED

到底能比较什么,
直接看真实结果。

按真实 HTML 报告的结构展示。每一行都直接列出比较类型、两边数量、相同数量、相同项列表和相似度。

综合相似度0.67%
项目 AFactorizationWanIndexes
项目 BHUMBbbMonitoring
生成时间2026-04-09 23:40
HTML / 01

逐项查看项目 A 与项目 B 的实际对比。

原始报告中的相同项名称直接展开;仅本地绝对路径不公开。

本页直接列出原始报告中可公开展示的相同项名称;为保护隐私,不公开本地绝对路径。完整 HTML 报告仍保留路径对应关系。

WHY IT MATTERS

文件数量只是开始。
真正重要的是内容关系。

两个 iOS 工程可能有不同的目录结构,却共享大量类、方法、资源名、布局节点或本地化文案。工具把这些信号拆开统计,帮助你从“看起来像”走向“知道哪里像”。

↗

为代码复用评估、项目合并前检查、交付审查和历史工程梳理提供一份可留存的本地证据。

ANALYSIS SURFACE

一份报告,
四个观察面。

按内容类型拆分统计与匹配结果,避免用单一数字掩盖差异。具体参与项由配置文件控制。

A / 01
</>

代码实体

识别并比较 Swift、Objective-C 项目中的类、属性、方法、协议、扩展、枚举、结构体、宏和全局符号。

SwiftObjective-CCompiler parser
B / 02
▦

资源与媒体

从文件名、相对路径和内容 Hash 观察资源关系,同时覆盖图片、音频、视频、资源包与普通文件夹。

HashPathMedia
C / 03
⌘

配置与文案

比较 Plist 键值、.strings / .xcstrings 本地化键值、布局文件名与节点属性,识别工程之间的结构线索。

PlistLocalizationLayout
D / 04
◎

依赖与规则

查看系统库、Pods / Frameworks 等外部依赖目录,并通过排除规则过滤系统项、隐藏文件与无关目录。

System libsPodsRules
THE LOCAL WORKFLOW

三步开始,
结果留在你的机器。

工具通过交互式 CLI 获取两个项目路径和一份 JSON 配置,再将分析过程和结果写入本地输出目录。

01

准备两个项目

选择需要比较的项目 A 与项目 B。工具会检查路径,并避免把同一个项目作为两侧输入。

02

选择比较规则

使用现有 JSON 配置控制代码类型、排除目录、系统方法、资源类型和最小比较字符串长度。

03

读取本地报告

完成扫描后生成 HTML 对比报告、JSON 数据文件与文本日志,可按类别继续复核相同项和路径。

QUICK START
cd SimilarityHelper && python3 start.py
REAL TEST SNAPSHOT

一份真实测试报告,
把结果讲清楚。

下面的摘要来自 2026 年 4 月 9 日的一次本地对比运行,展示两个 iOS 项目的规模、综合相似度与主要匹配维度。

● 仅展示脱敏摘要,不暴露项目绝对路径和完整明细。

查看完整对比项
2026-04-09 / TEST SNAPSHOTLOCAL REPORT
OVERALL SIMILARITY0.67%
0.67
Resource similarity6.82%
Localization keys23.72%
Folder names50.00%
Properties2.30%
PROJECT A

FactorizationWanIndexes

总文件315
代码文件92
代码行数21,940
图片文件198
PROJECT B

HUMBbbMonitoring

总文件718
代码文件119
代码行数15,160
图片文件285

比较配置:compiler parser · 最小比较字符串长度 2 · 排除隐藏文件与系统规则名单。综合相似度采用报告中的 equal_mean 口径。

full_config.jsonJSON
"exclude_dirs": ["Pods", "build"],
"parser_strategy": "compiler",
"ignore_hidden": true,
"min_compare_string_length": 2,
"output_dir": "output"
CONFIGURABLE BY DESIGN

规则透明,
结果可解释。

项目结构不同,比较重点也不同。通过 JSON 配置文件,你可以把排除项、代码类型、资源扩展名、系统规则和输出目录写成明确的分析前提。

✓ 默认配置可叠加✓ 支持排除名单文件✓ 忽略隐藏文件与目录
QUESTIONS, ANSWERED

先把边界
说清楚。

如果你的问题涉及在线服务、账号或云端存储,那不是当前 CLI 的能力范围。这里先把现有工具能做什么讲明白。

Similarity Helper 是在线服务吗?+

不是。现有工具以本地 CLI 方式运行,项目路径、配置和分析结果都在本地处理,不需要把源码上传到网站。

它能比较哪些 iOS 项目内容?+

支持 Swift、Objective-C 代码实体,以及资源文件、布局、图片、音频、视频、Plist、本地化文件、系统库和外部依赖等维度。

分析结果会输出什么?+

工具会在本地输出 HTML 对比报告、JSON 分析数据和文本日志,便于查看整体相似度、分类摘要、相同项明细与路径。

可以排除系统代码和无关目录吗?+

可以。配置支持排除目录、目录后缀、文件后缀、系统扩展 / 方法名单,以及隐藏文件、符号链接和最小比较字符串长度等规则。

READY WHEN YOU ARE

把“看起来很像”
变成一份可复核的报告。

从本地运行开始,按项目实际情况准备配置,再让结果告诉你相似度来自哪里。

CONTACT THE DEVELOPER

有问题,
直接聊。

如果你对工具的使用方式、报告结果或后续功能有建议,可以通过微信或邮箱联系开发者 Rollin。

邮箱联系rowliny@gmail.com

扫码添加好友,备注 Similarity Helper。

Rollin 的微信二维码,扫码添加开发者为好友
Rollin开发者微信
命令已复制