iOS瘦身各种方案

iOS瘦身之删除无用的mach-O文件

iOS微信安装包瘦身

基于clang插件的一种iOS包大小瘦身方案

以往C++在链接时,没有被用到的类和方法是不会编进可执行文件里。但Objctive-C不同,由于它的动态性,它可以通过类名和方法名获取这个类和方法进行调用,所以编译器会把项目里所有OC源文件编进可执行文件里,哪怕该类和方法没有被使用到。

一个lib包含了很多的架构,会打到最后的包里么?

如果lib中有armv7, armv7s, arm64, i386,x86_64架构,而target architecture选择了armv7s, arm64,那么只会从lib中link指定的这两个架构的二进制代码,其他架构下的代码不会link到最终可执行文件中;反过来,一个lib需要在模拟器环境中正常link,也得包含i386,x86_64架构的指令。

并且:如果app中包含i386,x86_64架构也是会被拒的!

推荐阅读更多精彩内容