iOS SDK開發之 .framework靜態庫

查看.a靜態庫的生成及使用單擊此處html

注:這篇教程將只使用一小部分Objective-C代碼,本文主要講解從開始到應用的詳細步驟。
環境:xcode 9.2
下面咱們開始操做:xcode

第一步:建立一個靜態庫工程

打開Xcode,選擇新建一個項目,新建Cocoa Touch Framework。名稱看本身需求起名,我直接叫MYSDK。iphone

建立完成後已經有一個.h文件MMYSDK.h和Info.plist文件,若是想要新實現方法封裝成SDK能夠直接新建類在裏面實現,也能夠將本身已經實現功能的類添加到工程裏面。(這裏只是寫生成.framework靜態庫的步驟,因此直接拖入之前寫好的類,獲取設備的IP地址,.m裏面具體的獲取方法就不往出來發了,若是有須要直接訪問iOS經常使用系統信息獲取方法中的IP獲取部分)佈局

 第二步:修改SDK工程配置

2.一、在TARGETS -> Build Setting中設置Build Active Architecture Only下的Debug對應值爲NO。ui

2.二、在TARGETS -> Build Setting中設置Mach-O Type的對應值爲靜態庫Static Library。spa

2.三、在TARGETS -> Build Setting中設置Dead Code Stripping的對應值爲NO。(大體意思是若是開啓此項就會對代碼中的」dead」、」unreachable」的代碼過濾,不過這個開關是否關閉,彷佛沒有多大影響,不過爲了完整還原framework中的代碼,將此項關閉也不曾不可)命令行

2.四、在TARGETS -> Build Setting中設置Link With Standard Libraries的對應值爲NO,避免重複連接。3d

2.四、在TARGETS -> Build Phases中將須要變成可見的頭文件移動到public下。code

2.五、將裏面有可直接調用方法的頭文件添加到MYSDK.h中。htm

第三步:生成.framework靜態庫

靜態庫分爲手機和模擬器兩種(手機端的只有手機能調用,模擬器的只有模擬器能調用)

3.一、生成模擬器使用靜態庫,隨意選擇一個模擬器,而後編譯工程(快捷鍵command + B)。這時候已經生成只在模擬器能用的.a靜態庫MYSDK.framework。

3.二、一樣的道理選擇Generic iOS Device生成真機能用的.a靜態庫。

 

右鍵MYSDK.framework,選擇Show in Finder 在Products文件夾下有兩個文件夾Debug-iphoneos和Debug-iphonesimulator,分別是真機和模擬器對應的靜態庫。

第四步:合成通用.a靜態庫

將真機和模擬器MYSDK.framework裏面的MYSDK靜態庫合併成一個通用的靜態庫,在終端完成。使用命令行:lipo -create 真機MYSDK靜態庫路徑  模擬器MYSDK靜態庫路徑 -output 合成靜態庫路徑 (直接拖拽MYSDK文件路徑就可出如今終端)。

至此,最終的合成庫已經生成在Debug-iphoneos文件夾下,用新生成的MYSDK替換MYSDK.framework下的MYSDK。MYSDK.framework就是咱們最終要使用的靜態庫。能夠直接使用了。

 第五步:.framework靜態庫的使用

5.一、隨意建立一個工程,將合成的.framework靜態庫添加到工程(這裏只是說明靜態庫的使用,請忽略工程目錄結構)。而後在ViewController裏面導入頭文件調用靜態庫裏面的方法

5.二、分別在模擬器和手機端運行(iPhone X模擬器和iPhone 6S手機),結果以下(請忽略頁面佈局,只是爲了展現結果)。

            

 

至此,大功告成。

相關文章
相關標籤/搜索