如果你的app是flutter开发的,而且遇到了4.3, 请停下所有的计划, 本篇对flutter app 4.3问题进行专讲
那么首先有两种情况 :
1 : flutter代码已经上架过, 再次使用这套代码上架的这种情况
2: flutter代码完全新写, 还是遇到了 4.3
我们首先来讲解第一种情况, flutter代码已经上架过, 再次使用这套代码上架的这种情况
那么我们可能都会知道, 第一步要进行代码混淆 ,那么问题来了, flutter的app到底应该如何混淆, 原生的app的混淆方式, 是否同样适用于flutter呢 .
先给出答案, flutter的代码混淆和原生截然不同, 这是因为flutter的编译的产物决定的
flutter 的代码最后被编译到了哪里? 打开你的ipa包, 你会发现, flutter 最后会被编译成两个动态库
1: flutter 框架 动态库 Flutter.framework

2: 你的flutter 代码 动态库 App.framework

3: 你的flutter所引用的插件同样以动态库集成在framework文件夹中

了解了你的flutter 应用编译产物, 那么你才会在混淆代码的时候, 清楚方向
那么你应该问自己了, 修改了flutter工程中的 类名, 方法名, 属性名, 常量名, 最后到底影响了谁?
是否影响了ipa中的可执行文件? 压根不影响
是否影响了ipa中的Flutter.framework ? 几乎不影响
是否影响了ipa中的 App.framework ? 影响
我怎么确定影响呢 ? 我们来拆解 App.framework 动态库, 我们使用我自己写的python脚本 看看里面的内容
1: 这是一些符号表, 我们暂时忽略不看

2: 到这里, 我发现了我在flutter中的定义的一些类名, 方法名
结论 : 也就是说你的flutter 使用原生的方式进行混淆后, 影响的只是 App.framework 动态库, 这就是你的flutter 遇到4.3的根本原因
进入正题: 那么混淆应该用什么方式?
想要解决问题, 你必须找到问题, 再去分析问题, 问题也自然而然就会得到解决, 问题找到了, 我们进入分析阶段
1:你的flutter 混淆后只改变了单一的 App.framework 动态库, 我想要我的ipa 发生较深层次的变化, 是否应该使所有的动态库发生变化?
2: 你的flutter 应用的ipa中可执行文件Runner 是否也要发生变化, 如何让可执行文件发生变化?

3: 如果你的可执行文件体积较小,可能甚至几十k, 内部几乎没有代码 ,那么苹果机审如何对这种可执行文件进行审查 ?

我并不能直接说出答案, 但是我抛出了问题
动动你的小脑瓜, 你也许就会得到答案
如果你无法通过我的问题进行拓展分析, 你可以找到我 ,我来协助你,解决你的4.3问题
下一篇我们讲解第二种情况, flutter代码完全新写, 还是遇到了 4.3