Skip to content
Rollin edited this page Jul 24, 2022 · 6 revisions

DiffHelper

iOS代码差异助手(比手快多了)

术语

符号(symbol)

iOS项目中 类、分类、协议、方法、属性、宏、静态变量、静态常量、block、枚举 等的统称
iPA安装包中的二进制(可执行)文件能找到以上所有的符号,所以他们是需要修改的

背景介绍

由于国内IT行业的现状,市面上出现过不少针对ipa做差异化的工具,18年Q2开始流行使用基于LLVM的混淆编译器,在不改变代码的情况下,达到ipa包内可执行文件的差异.自从Xcode10发布后,基于LLVM相关的衍生版(定制版)的效果不再那么显著,到了后期,Xcode项目使用混淆编译器编译提审,大概率会收到苹果关于包含模糊代码的被拒原因.由于诸多原因,差异化的方向从编译混淆到了代码(和资源)差异化这里.

现在市场上也有很多同类型的工具,但是也有一些不足,这也是我开发了这个工具的原因.

优势

  1. 处理后的符号(符号的概念见上面的术语解释)更加接近开发人员的命名习惯,处理后的代码可阅读性高(没有使用随机的单词组合),合理的命名是过审的关键
  2. 支持OC所有的语法
  3. 所涉及到的文件名同步修改
  4. 支持当前主流的资源类型差异化(修改名字,修改文件md5)
  5. 支持多种白名单
  6. 其实1才是优势(也是绝对的优势)