iOS項目引用靜態庫文件.a

        由於開發的項目中使用了靜態庫文件(.a文件),因此專門對它進行了簡單的學習。靜態庫文件包裝的是經常使用的公共代碼,便於代碼的複用。

1、生成靜態庫文件(static library file)。主要包括以下幾個主要步驟:

(1)創建靜態庫項目

wKiom1Xdd8iTXsMiAAFq3ICkesI772.jpg

命名爲Stone,並在生成的Stone類裏面添加一個類方法+printInfo,如圖:

wKiom1XdeX-SvQCiAAIG0e6CVKo709.jpg

wKioL1Xde5fiL7VvAAI3UmOn2r4992.jpg

未編譯前,Products文件夾下的libStone.a是紅色的,編譯之後變爲黑色,如圖:

wKioL1XdfRbw4UOoAAFxmnI2kf0490.jpg

注意頂部選擇"iOS device"生成用於真機的靜態庫文件,選擇任意模擬器則生成用於模擬器的靜態庫文件,且只要在選擇"iOS device"時libStone.a才由紅色變爲黑色。

(2)設置release,如下圖:

wKioL1Xdf8fT8GCLAAKSRSQZdTw502.jpg

選擇圖上左側紅圈部分,之後再選擇Edit Scheme,在彈出的對話框中選擇release即可。

(3)編譯後,進入文件夾:

/users/layne/Library/Developer/Xcode/DerivedData如圖:

wKioL1XdgGeCNdvfAAI8qHrlNEQ571.jpg

找到對應的項目的文件夾,Stone-efgkvmcmovsnfcelruigvapvtvwl/Build/Products,可以看到生成了2個文件夾Release-iphone和Release-iphonesimulator,前者裏面的libStone.a用於真機,後者裏面的libStone.a用於模擬器。如圖:

wKioL1XdgaCyxZUQAABz7qTC4YA613.jpg


2、爲使用libStone.a的項目進行配置。

使用已創建的項目UIMenuController,爲了便於演示,已將爲真機和爲模擬器使用的.a文件進行了重命名且複製到了桌面上。如下圖:

wKioL1XdgujBwrI4AAEFOfsLHjM527.jpg

(1)UIMenuController項目的build Phases->Link Binary with Libraries添加libStoneForIphone.a,並將Stone.h添加到項目裏,如圖:

wKioL1XdhFyBpwGBAAIMUOzbQo8366.jpg

(2)使用。如圖:

wKiom1XdgrbyRhwUAAiOPXCmqys017.jpg

注意:

(1)添加什麼樣的.a文件就只能用對應的方式運行。即添加了libStoneForSimulator.a,則只能用模擬器跑;添加了libStoneForIphone.a,則只能用真機跑。否則會出錯。

(2)解決方法有兩種:

①把兩個.a文件都添加進項目。

②將兩個.a合併爲一個.a文件。

將兩個.a文件合併爲一個的方法如下:

使用命令行即可。終端切換到桌面,然後執行以下命令

lipo -create libStoneForIphone.a libStoneForSimulator.a -output libStoneForAll.a

這樣一來,只要引入libStoneForAll.a文件即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章