iOS 上架 审核 被拒4.3 【权重】【重磅来袭】

我们这边文章内容较深,初学的开发者可能无法理解. 希望可以攒点收藏关注, 以便于巩固 在一个ipa包中, 我们可以通过拆解发现 有以下部分组成 1: 可执行文件 2: 动态库 3: 资源文件 ��


我们这边文章内容较深,初学的开发者可能无法理解. 希望可以攒点收藏关注, 以便于巩固



在一个ipa包中, 我们可以通过拆解发现 有以下部分组成

1: 可执行文件
2: 动态库

3: 资源文件

那么苹果审核也是基于这几个作为主要查重指标进行4.3的判断



可执行文件

可执行文件其实是一个二进制文件,里面是由机器码组成, 通过层层反编译 我们才能得到高级代码, 也就是我们开发的oc,swift,go 等源代码


动态库

你适用的一些三方插件,比如AFN ,SD, MJ, 等等三方库插件目前大部分都是以动态库的形式存在ipa包的framework文件夹中,而不是编译到可执行文件中, 当然不是所有的插件都是动态库的形式存在,少部分以静态库的形式存在

我们看到动态库也是一个执行文件, 不错, 其实他们都属于二进制文件, 本身没有太大的差距.里面同样是机器码, 通过层层反编译得到高级代码




资源文件


资源文件就比较简单了,其实就是ipa里面的, png, gif,mp4,mp4,json,bundle,ttf, 等等我们统称为资源文件


重点来了 

我们在简单的介绍了ipa的组成后, 来进行苹果的机审预测和分析


苹果在对比两个ipa包的时候, 到底是什么对比方式? 

第一种猜测 : 平行对比

可执行文件 vs 可执行文件
动态库 vs 动态库

资源文件 vs 资源文件


这种平行对比是最有可能是苹果目前采用的对比方式 

ipa1的可执行文件和ipa2 的可执行文件进行对比,  计算出一个可执行文件相似度

ipa1 的动态库和  ipa2 的动态库 对比 计算出一个动态库相似度

ipa1 的资源文件 和 ipa2 的资源文件 对比计算出一个资源文件相似度 


三个相似度进行一个权重配比, 最后计算出一个总体相似度



那么问题来了,请注意,权重如何分配 ? 

假设一种权重综合是1, 苹果是否会把权重写死 ?  不同部分分配不同的权重可能导致不同的相似度结果


比如可执行文件 0.4 , 动态库0.3 ,资源文件0.2 ? 


结论: 可能行不大,苹果可能是动态分配权重的


比如两个ipa 可执行文件只有一行代码, 且是同一行代码, 那么可执行文件相似度100%, 直接拉满了相似度 . 这明显不合理,这会出现重大的误判


苹果可能是基于可执行文件和 动态库的总体代码占比, 来动态分配相似度, 这样明显最准确


如果可执行文件的代码较少, 那么他应该分配较低的权重


如果可执行文件远超于的动态库的代码量, 那么可执行文件的权重将会转移给动态库一些



如果可执行文件和动态库的代码量相当, 那么均分权重, 这才是最优对比方案



你会发现 明明是手写的全新代码 ,但是被判定4.3 ,其实是使用了大量使用了一些三方库,   导致动态库部分代码量远超于可执行文件, 动态库权重拉高, 整体相似度偏高


当然这里有一个重要的环节, 苹果会过滤常用的三方库, 以免造成误判


此处并非猜测,  是我在对接客户通过无数个电话录音确定的.



返回技术博客 · 返回首页 · 服务价格