什么是組件二進(jìn)制化?
在iOS開發(fā)中,事實(shí)標(biāo)準(zhǔn)是我們使用CocoaPods生成、管理和使用library。這里的library就是一個(gè)模塊、組件或庫(kù)。二進(jìn)制化指的是通過編譯把組件的源碼轉(zhuǎn)換成靜態(tài)庫(kù)或動(dòng)態(tài)庫(kù),以提高該組件在App項(xiàng)目中的編譯速度。
我們的方案是轉(zhuǎn)換成靜態(tài)庫(kù),也就是.a格式的文件加上暴露出來的頭文件。
為什么我們需要二進(jìn)制化呢?
在我們App開發(fā)中,我們逐漸的抽象了很多模塊、業(yè)務(wù)、UI等把他轉(zhuǎn)換成私有CocoaPod庫(kù)。其中有一個(gè)是用C++和Objective-C混寫的,源碼格式為.mm。在app項(xiàng)目編譯時(shí).mm部分代碼編譯非常慢。這作為一個(gè)契機(jī)讓我們?nèi)タ紤]如何加快編譯速度。
另外隨著業(yè)務(wù)的擴(kuò)展,私有CocoaPod庫(kù)和第三方CocoaPod庫(kù)越來越多,App項(xiàng)目中的文件也越來越多。每次pod install安裝新庫(kù)或pod update更新庫(kù)的時(shí)候,重新編譯的過程需要等待很長(zhǎng)時(shí)間。這也向我們提出了加快編譯速度的需求。
另外如果想要做組件化的話,一定要做二進(jìn)制化。