iOS 封裝SDK(.a靜態(tài)庫的封裝)

最近突然相對自己封裝的一些UI工具類進行進一步的封裝,突然想到了之前做過的靜態(tài)庫封裝,今天重新試了下,操作上不是很熟悉,以此為契機,將技術中的點點滴滴記于簡書。

一、 創(chuàng)建一個靜態(tài)庫工程。

1. 打開Xcode,點擊File\New\Project,選擇iOS\Framework and Library\Cocoa Touch Static Library新建一個靜態(tài)庫工程.

將工程命名為APTestSDK。

二、工程配置

Build ActiveArchitecture Only設置成YES;

Architectures按Xcode默認配置,arm64向前兼容;

制作.a靜態(tài)庫,需要要保證兼容性,包括不同iOS設備以及模擬器運行不出錯,所以盡量做到最大的兼容性。

ValidArchitectures設置為:armv7|armv7s|arm64|i386|x86_64

三、一個靜態(tài)庫工程由頭文件和實現(xiàn)文件組成,編輯之后就組成了庫本身。

創(chuàng)建靜態(tài)庫庫時,一般是不需要.m實現(xiàn)文件的,選中APTestSDK.m右擊選中delete,將其刪除。

四、將自己封裝好的自定義控件拖入工程。

1. 將功能相關的所有頭文件,導入到SDK的頭文件中。


2. 選中Generic iOS Device,Comand+B編譯工程。(選中Generic iOS Device編譯的是真機,選中模擬器編譯的就是對應的模擬器靜態(tài)庫。) 若編譯成功紅色的libAPTestSDK就會變成灰色。

3. 選中l(wèi)ibAPTestSDK.a右擊Show in Finder。

在下圖中你可以看到真機和模擬器對應的靜態(tài)庫和相關文件。

然后我拿到Debug_iphonessimulator里的.a文件,還有和他相關的所有.h文件存放在一個文件夾中。此處我在桌面創(chuàng)建了一個名為MySDK的文件夾。

4. 現(xiàn)在我們那這個文件夾去玩玩了,

你運行之后發(fā)現(xiàn)在模擬器上是沒啥問題的,當你在真機上運行時就會報錯。

哈哈 ?很明顯該庫不支持arm64位架構,也就是不支持真機。回想一下就知道我們創(chuàng)建靜態(tài)庫文件時,只添加了模擬器中的靜態(tài)庫,所以接下來就是合并模擬器和真機的靜態(tài)庫。

五、合并靜態(tài)庫。

打開終端,輸入一下指令即可。

lipo -create ?模擬器中.a的路徑 真機中.a的路徑 -output ?/Users/mac/Desktop/libXXX.a

-output后面有一個空格, 其后跟的路徑就是你想要存放合并靜態(tài)庫的路徑。

六、 ? 把所有的需要封裝的.h和最后生成的.a放在一個文件夾里,然后引入到需要的工程即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容