3dff555e780998b933e0d800d557e965
iOS 如何使用本地混淆差异化?

首先谢谢大家积极催稿, 我迫不及待想尽快出第二篇文章, 由于年前确实忙加上年会节目排练, 生活安排的甚是紧凑, 文章一拖再拖, 谢谢大家的理解和支持, 在此祝大家新年快乐!

今天讲如何使用本地混淆差异化? 为何去做这件事情呢? 容我强势分析一波, 下面这波分析也是我的经验教训, 希望能帮到你~

1.原由为何要本地混淆差异化代码?

最初主要有两个原因:
1.非马甲用户:
2018年开始大量的项目上新更新都受到延迟审核, 或者被误伤为Guideline 4.3, 你可能在当时认为是自己的问题, 就不断在自我反思核查, 最后发现是误伤, 但是Apple review 电话沟通一致认为你有功能点或者内容和别的项目过于相似;

为何会出现这个问题呢?
原因在于你的项目可能是垂直业务领域, 大片的项目功能几乎非常相似, 比如: 工具类, 效率, 社交类, 音乐类等尤为突出, 所以导致苹果加速对垂直领域的整治, 大量垂直产品被下架;

2.马甲用户:
再来说马甲, 2017年12月以前, apple 对马甲的管制很松, 我最多的时候一个包上传30次, 几乎没任何阻碍感;

但从18年4月份开始, apple首先对区域类马甲进行整治, 比如: xx合肥站, xx北京站, xx投注赛马等等;

6月份开始加入只能筛选下架, 猜测是加入了对马甲的打标签功能, 可以简单理解为将你的包统统打标签拉黑进行冷藏, 无论你怎么伸冤都无济于事, 这个阶段可以理解为打击在线App;

9月份开始进行对初审(机审)进行严格把控, 类似对每个项目进行了机器剖析, 提出有效特征参数形成特征码存储, 也就是每个项目都有自己的特征码, 项目一般改动是无法改变这个特征码的, 所以这个阶段很多人引咎放弃;

10月份开始对人审进行把控, 将条款细化, 最为突出的是 Guideline 2.1 成了家常便饭, 现在回头来看这个2.1可以理解为, 回复确认"我经过自我核查, 保证没有违反苹果爸爸的条款, 并签名进行保证" 仅此而已;

介于此, 本地混淆代码无论是从马甲还是非马甲都起到了改变现状的作用, 对于非马甲, 解决基础差异化可以顺利上线; 对于马甲可以改变项目特征码, 避开初审(机审), 至于人审就要靠运气了, 到目前为止已可以确定起到作用并完成上新和更新~

2.如何混淆?

在研究本地混淆时参考了网上的一些方法, 有完全混淆成自己都不认得的方法, 也有规律性修改的, 为了快速进行混淆, 对前辈经验的混淆方法进行了提取和优化(文章末尾会提供demo):

1.工程混淆

command + shift + "," 设置:

在蓝色区域设置以下参数:

top Created with Sketch.