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有優化效果,值得推薦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM