• iOS rebuild from bitcode对ipa大小的影响


    https://developer.apple.com/library/content/technotes/tn2432/_index.html

    为了测试一下rebuild from bitcode的具体作用,我做了以下测试

    Section One : 应用程序enable_bitcode 是 true,就是允许app可以bitcode。

    1.选择企业发布,发布一版只支持iphone5的ipa,并选择rebuild from bitcode

    2.用同样的archive 文件,再发布一版iphone5的ipa,这次不选择rebuild from bitcode

    首先,选择了rebuild from bitcode的,会多出一个漫长的 bitcode编译时间,如下图

    2次生成的文件表面看差不多

    但是,开了bitcode的ipa是1.1M,没开的是1.3M。

    在看看App Thinning Size Report里的区别,

    开了rebuilt from bitcode的

    Supported devices: iPhone 5
    App + On Demand Resources size: 1.1 MB compressed, 2.5 MB uncompressed
    App size: 1.1 MB compressed, 2.5 MB uncompressed
    On Demand Resources size: Zero KB compressed, Zero KB uncompressed

     没有选择rebuilt from bitcode的

    Supported devices: iPhone 5
    App + On Demand Resources size: 1.3 MB compressed, 3.5 MB uncompressed
    App size: 1.3 MB compressed, 3.5 MB uncompressed
    On Demand Resources size: Zero KB compressed, Zero KB uncompressed

    如果不对特定机型编译,选择生成一个通用的ipa,也存在rebuilt from bitcode选项。我们再比较一下。

    选择了的话,ipa是1.7m。 不选择的话,是2.1m。可以看出rebuilt from bitcode 在这种情况下能够减小ipa体积,即使不是针对特定机型生成的ipa。

    Section One 可以得出结论:如果app使用了 enable_bitcode,那么在organizer里生成ipa时,选择rebuild from bitcode选项,会使ipa的体积缩小。


    Section Two  应用程序enable_bitcode 是 false

    首先,生成的archive 文件就比较小,是33m ,而刚才开了 bitcode的是36m。

    1.选择企业发布,发布一版iphone5的ipa,并选择rebuild from bitcode

    2.用同样的archive 文件,再发布一版iphone5的ipa,这次不选择rebuild from bitcode

     开启rebuild from bitcode 的ipa 是1.3m,不开的ipa 也是 1.3m,2者只差了 2 Byte。

    Supported devices: iPhone 5
    App + On Demand Resources size: 1.3 MB compressed, 3.5 MB uncompressed
    App size: 1.3 MB compressed, 3.5 MB uncompressed
    On Demand Resources size: Zero KB compressed, Zero KB uncompressed

    和Section One 测试中的,不开启rebuild from bitcode 的ipa,差50 Byte 左右。

    如果不对特定机型编译,选择生成一个通用的ipa,也存在rebuilt from bitcode选项。我们再比较一下。

    选择了的话,ipa是2.1m。 不选择的话,是2.1m,差了200Byte左右。和Section One中的相应结果比较,差了100 Byte 左右。

    通过Section Two的测试,可以得出:如果一个app 的enable_bitcode 是false,那么在 Organizer里生成ipa的时候,无论宣布选择rebuild from bitcode都是没有用的。生成的结果基本一致。

    通过Section One 和 Two的比较,可以看出,如果一个程序enable_bitcode 为true,并使用 bitcode 技术编译出了ipa,会比普通的编译方法得到更小的ipa,也许代码优化方面也会更好。对于企业级发布,最常用的可能是Section One 里 enable_bitcode ,并且使用rebuilt from bitcode 生成一个通用ipa的情况。对于这种情况,虽然没有办法做到 像APP store那样『针对不同的型号设备,下载到不同的编译ipa』,但是也对ipa有优化效果,值得推荐。

  • 相关阅读:
    Microsoft Exchange Mail Flow Rule
    Microsoft Exchange Inactive mailbox
    Microsoft Exchange In-Place Hold and Litigation Hold
    Microsoft Exchange eDiscovery
    Microsoft Exchange Retention Policy
    JavaScript Array 操作
    CSS选择器优先级
    CSS实现垂直居中
    watch和computed和methods区别是什么?
    什么是async和await? 怎么捕获异常?
  • 原文地址:https://www.cnblogs.com/breezemist/p/6696158.html
Copyright © 2020-2023  润新知