iOS 靜態(tài)庫? :閉源庫
不公開源代碼,只公開調(diào)用的接口,看不到具體的實現(xiàn),是一個編譯后的二進(jìn)制文件。這種常見于一些公司的SDK包,比如高德地圖SDK、環(huán)信即時通訊SDK等等。而閉源庫又分為兩類:靜態(tài)庫和動態(tài)庫。本篇重點要講的便是其中的靜態(tài)庫。
靜態(tài)庫 和 動態(tài)庫的存在形式的區(qū)別
靜態(tài)庫 :.a 文件以及.framework ?在使用過程中 如果多個文件引用 會被創(chuàng)建多份在內(nèi)存中。
動態(tài)庫:.dylib文件以及.framework ?在使用過程中動態(tài)使用,內(nèi)存中只存在一份,可被多次引用。
打包靜態(tài)庫:.a 文件靜態(tài)打包?

創(chuàng)建一個demo ?,隨意創(chuàng)建一個方法 進(jìn)行測試 打包

在創(chuàng)建靜態(tài)庫的過程中我們可以創(chuàng)建在模擬機(jī)上運行的靜態(tài)庫,也可以創(chuàng)建在真機(jī)上運行的靜態(tài)庫 。
生成方法分別選中模擬機(jī) 以及真機(jī)進(jìn)行項目編譯(command+b),編譯之前下圖中的.a文件是紅色的,編譯生成之后會變成黑色,此時就證明我們的靜態(tài)庫生成成功??梢詓how in finder 進(jìn)行查看

當(dāng)然,創(chuàng)建的靜態(tài)庫文件是給別人拿來用的 ,然而此時外部人員是不知道我們的入口在哪,那么 我們需要下圖操作,將我們的. h文件 放開。

到此我們的靜態(tài)庫生成完畢。
在使用過程中 可能會遇到 如下錯誤 ,此錯誤表明 我們的靜態(tài)庫是不支持某些架構(gòu)的 (模擬機(jī)以及真機(jī)等的架構(gòu) 此處不再贅述)

進(jìn)行如下圖操作,可以解決上述問題 ?進(jìn)行完此操作之后 我們再次運行項目 ?。

注:靜態(tài)庫 因為真機(jī)和模擬機(jī) 以及debug 和release 等模式可以分為不用的 靜態(tài)庫 ?,我們可以執(zhí)行終端命令 進(jìn)行合并(此處解決靜態(tài)庫在真機(jī)和模擬機(jī)分別 的靜態(tài)庫的不匹配),但是此操作會增大文件,在上線的時候還是選擇相應(yīng)的 靜態(tài)庫
時間倉促,寫的比較潦草 ? 后期再進(jìn)行內(nèi)容填充。