最近uniapp 开发的APP 提审被拒4.3 概率飙升
客户解释说 : 全新手写代码提审 4.3a
无论是uniapp 还是futter, 都属于跨平台开发, 都有一些基础库. 这些库的基础代码很有可能是 全新手写代码还会导致4.3的原因
详细解析:
我们来对比两个毫不相关的ipa应用 的文件构成
从这张动态库引用对比图, 可以看出相似度极高
我们继续对比静态特征
两个毫不相关的APP的静态特征 竟高达 100多个.
我们继续做一个可执行文件深入对比
非常可怕, 两个毫无相关的APP, 动态链接序列竟然达到29个
那么经过以上综合对比, 你的新写的uniapp 应用,出现4.3的概率将非常大, 这也不并不是苹果的错误, 因为你和人家太像了
那么如何去解决呢? 难道直接修改uniapp 基础库?
1: 难度大
2: 风险大
3: 多个app可能需要维护多个基础库
从以上三点说明修改基础库并不现实
我们可以换个角度来处理这个问题
无论是什么样的基础库, 还是什么语言开发的iOS应用最终都被编译成可执行文件, 动态库, 和一些其他琐碎文件
了解了这个原理, 还有一个前提, 就是大部分uniapp开发者, 都试用的是云打包, 也就是说,你的代码最终有uniapp框架负责生成ipa, 你无法干预, 这也是导致uniapp 4.3概率极大的原因之一
我们首先要从云打包的方式,切换成本地打包,这样我们才能进行干涉, uniapp 开发者可能对本地打包比较陌生, 那么官方给了一个本地打包的完整说明
从xbuider中你会找到这个按钮, 链接到一个官方网址: 开发环境 | uni小程序SDK
你首先要重新配置你的xocde工程, 才能继续我们的下一步处理方案
在处理之前: 首先你要了解uniapp的编译产物, 哪些代码被编译到了可执行文件中, 哪些代码被编译到了动态库. 你的资源文件又以什么样的形式集成到ipa中.
我们来看, 可执行文件中到底有哪些内容:
我们使用otool 命令从可执行文件中提取的类文件, 这些更像是一些三方库, 并且是oc语言编写,但是这文件并不是可执行文件中的全部内容,
因为我们从文件的大小就可以判定, 这个类文件加起来只有几百k, 和可执行文件的14.2M 有较大差距, 那么其他都是些什么东西呢?
我们继续使用size命令查看可执行文件组成
你是否发现了什么?
经过仔细分析ipa包, 我给客户出了一套方案, 于五月一日过审
找到我, 我们可以一起探讨这个问题, 同样可以对你的app做出分析, 大家一起解决