zoukankan      html  css  js  c++  java
  • iOS 优化ipa包,减小安装包大小

    https://www.jianshu.com/p/a49d59b01669

    项目打包之后.ipa包的大小是118.9M,上传到App Store后iPhone6s上显示85.5M,下载时间太长,所以找了一些优化方法,下面这些都是别人写的自己试了一下确实好用,不是原创,只是记录一下。


    1、配置编译选项 

    (Levels选项内)Generate Debug Symbols  设置为NO,这个配置选项应该会让你减去小半的体积。注意这个如果设置成NO就不会在断点处停下

     
     

    2、舍弃架构armv7

    armv7用于支持4s和4,4s是2011年11月正式上线,虽然还有小部分人在使用,但是追求包体大小的完全可以舍弃了。

     
     

    3、去除无用的三方库、代码、readme

    4、图片处理

    图片是安装包里占用空间最大的东西,我的项目中占用了一半的体积。

        *用imageoptim压缩图片的大小

        *一些比较大体积的背景图片压缩成.jpg格式的。

        *用LSUnusedResource这个软件查找项目中没有用到的图片,然后删除,当然不一定特别准确,有一些[UIImage imageNamed:[NSString stringWithFormat:@"icon_%d",index]]这样使用的图片也会被列在未使用图片中。

       *使用Assets.xcassets来管理图片也可以减小安装包的体积

    5、build setting 里 DEAD_CODE_STRIPPING = YES(好像默认就是YES)。 确定 dead code(代码被定义但从未被调用)被剥离,去掉冗余的代码,即使一点冗余代码,编译后体积也是很可观的。

     
     

    6、编译器优化级别

    Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest[-Os],这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。

     
     

    7、去除符号信息

    Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本应该设为yes,可以去除不必要的调试符号。Symbols Hidden by Default会把所有符号都定义成”private extern”,设了后会减小体积。

     
     
     
     
     

    8、Strip Linked Product:DEBUG下设为NO,RELEASE下设为YES,用于RELEASE模式下缩减app的大小;

     
     

    2018.7.17新增

    9、编译器优化,去掉异常支持。Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO,Other C Flags添加-fno-exceptions

     
     

     
     

    Enable C++ Exceptions
     
    Enable Objective-C Exceptions
     
    Other C Flags添加-fno-exceptions

    10、利用AppCode 检测未使用的代码:菜单栏 ->Code->InspectCode

    最后要说:xcode BulidSetting中的设置都可以区分debug和release,如果觉得在开发的时候还想用到这些,就把debug和release分开设置就可以了



    作者:Missmiss懵
    链接:https://www.jianshu.com/p/a49d59b01669
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    成为JAVA(高级)工程师
    JVM的内存区域划分以及垃圾回收机制
    XML
    String.valueOf
    JAVA书籍(2)
    JAVA书籍(1)
    深入JAVA线程池
    FileWriter与BufferedWriter
    获取下拉框的文本或值
    删除字符串最后一个字符的几种方法
  • 原文地址:https://www.cnblogs.com/sundaysgarden/p/11927728.html
Copyright © 2011-2022 走看看