簡介
日常開發(fā)中會用到各種已經(jīng)封裝好的庫邮破,比如微信支付邻吞、高德地圖SDK,方便上層業(yè)務(wù)使用對應(yīng)的能力橱脸。庫是共享程序代碼的方式础米,一般分為靜態(tài)庫和動態(tài)庫。
- 動態(tài)庫與靜態(tài)庫的區(qū)別:
- 靜態(tài)庫:連接時完整地拷貝至可執(zhí)行文件中添诉,被多次使用就有多份冗余拷貝
- 動態(tài)庫:連接時不復(fù)制屁桑,程序運(yùn)行時由系統(tǒng)動態(tài)加載到內(nèi)存供程序調(diào)用,系統(tǒng)只加載一次栏赴,多個程序共用蘑斧,節(jié)省內(nèi)存。系統(tǒng)的.framework是動態(tài)庫艾帐,我們自己建立的.framework是靜態(tài)庫
- .a與.framework的區(qū)別
- .a是一個純二進(jìn)制文件乌叶,.framework中除了有二進(jìn)制文件之外還有資源文件
- .a文件不能直接使用,至少要有.h文件配合柒爸,.framework文件可以直接使用
- .a + .h + sourceFile = .framework
創(chuàng)建步驟
使用pod創(chuàng)建framework
pod lib create 庫名
使用xcode創(chuàng)建framework
- 打開xcode准浴,新建工程:Xcode->File->New->Project,選擇Framework
-
填寫工程名稱捎稚,選擇創(chuàng)建路徑乐横,保存
- 選擇對應(yīng)Target,在Deployment Info里選擇支持的版本
- 設(shè)置Build Settings相關(guān)參數(shù)
- 設(shè)置 DEPLOYMENT_POSTPROCESSING = YES
- 設(shè)置 STRIP_STYLE 為 Debugging Symbols
- Build Settings -> Compiler Flags添加 -fembed-bitcode 參數(shù)
- 確認(rèn)Build Settings -> Enable Bitcode 為YES(默認(rèn)是)
- 設(shè)置Mach-O Type為static library今野,保證產(chǎn)物是靜態(tài)庫
- Build Active Architecture Only 為 NO葡公,修改為NO, 否則生成的靜態(tài)庫就只支持當(dāng)前設(shè)備的架構(gòu)
添加podfile
用終端打開根目錄,輸入pod init
条霜,可以創(chuàng)建Podfile文件催什,可在里面依賴其他SDK
target 'XXFramework' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for XXFramework
end
添加podspec
如果需要被其他工程依賴,可通過添加podspec來描述宰睡。用終端打開根目錄蒲凶,輸入pod spec create XXFramework
气筋,默認(rèn)創(chuàng)建的描述比較全,可根據(jù)具體需求進(jìn)行修改旋圆。此文不做具體描述宠默,后續(xù)會專開一文。
編譯
同時按住 cmd+b
灵巧,即可運(yùn)行編譯搀矫。