美文网首页iOS知多少iOS SDK 开发SDK开发
iOS之开发的SDK(.framework)瘦身

iOS之开发的SDK(.framework)瘦身

作者: 火星抄手 | 来源:发表于2017-02-23 10:49 被阅读633次

    项目需求:最近开发的SDK,要提供给公司其他部门使用,但是开发后的.framework的大小为12M。但是某程APP不愿意,说包太大,要瘦身。所以,只能网上找资料。下面说说我的的做法,亲测试可以的。

    一、set Generate Debug Symbols to NO

    make sure that you set Generate Debug Symbols to NO in your build settings. This can reduce the size of your static library by about 30%.
    In your target's build settings look for 'Optimization Level'. By switching that to 'Fastest, Smallest -Os' you'll permit the compiler to sacrifice some speed for size.

    (1)、设置Generate Debug Symbols 为NO。可以减少30%左右的体积,所以这个选项很重要。

    Generate Debug Symbols 为NO.png

    (2)、设置Optimization Level下的Release模式为:Fastest,Smallest[-Os] 。这是Xcode上默认的,但我们要知道,意思是开启不增加代码大小的全部优化,并让可执行文件尽可能小。

    设置Optimization Level.png

    经过上面的设置,我的.framework有12M减到了8M。

    二、删除无用代码

    设置Dead Code Stripping为YES,去掉冗余代码即代码被定义但未被使用。

    设置Dead Code Stripping为YES.png

    三、删除不必的指令集

    我原来在Architectures中加入了armv7s。现在我将armv7s删除,重新编译,可以减少三分之一的体积。framework包由原来的1.8M减到1.2M。

    指令集:armv6 : iPhone,iPhone2,iPhone3G,第一代和第二代iPod Touch; armv7:iPhone4,iPhone4S; armv7s:iPhone5,iPhone5C; arm64:iPhone5S

    指令集是向下兼容的,所以设置了armv7是可以在armv7s的设备上运行的。

    设置指令集.png

    四、删除framework中无用mach

    (注:该方法没试过,不过该方法是可信的)

    点击打开链接

    五、ipa缩小文件体积

    点击打开链接

    相关文章

      网友评论

      • 伦伦子_f7b3:感觉瘦身没效果
        火星抄手:@伦伦子_f7b3 还是有一点点效果的
      • 4a5e3d4ee102:Generate Debug Symbols 设置为NO,对静态库来说会有副作用吗
        火星抄手:@奔跑的蜗牛ccc 没有,设置之后,调试断点进不去而已

      本文标题:iOS之开发的SDK(.framework)瘦身

      本文链接:https://www.haomeiwen.com/subject/iwgvwttx.html