iOS SDK開發之 .framework靜態庫

來源:互聯網
上載者:User

標籤:手機   令行   cts   lin   需求   關閉   bug   each   mach-o   

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

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

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

開啟Xcode,選擇建立一個項目,建立Cocoa Touch Framework。名稱看自己需求起名,我直接叫MYSDK。

建立完成後已經有一個.h檔案MMYSDK.h和Info.plist檔案,如果想要新實現方法封裝成SDK可以直接建立類在裡面實現,也可以將自己已經實現功能的類添加到工程裡面。(這裡只是寫產生.framework靜態庫的步驟,所以直接拖入以前寫好的類,擷取裝置的IP地址,.m裡面具體的擷取方法就不往出來發了,如果有需要直接存取iOS常用系統資訊擷取方法中的IP擷取部分)

 第二步:修改SDK工程配置

2.1、在TARGETS -> Build Setting中設定Build Active Architecture Only下的Debug對應值為NO。

2.2、在TARGETS -> Build Setting中設定Mach-O Type的對應值為靜態庫Static Library。

2.3、在TARGETS -> Build Setting中設定Dead Code Stripping的對應值為NO。(大致意思是如果開啟此項就會對代碼中的”dead”、”unreachable”的代碼過濾,不過這個開關是否關閉,似乎沒有多大影響,不過為了完整還原framework中的代碼,將此項關閉也未曾不可)

2.4、在TARGETS -> Build Setting中設定Link With Standard Libraries的對應值為NO,避免重複的連結。

2.4、在TARGETS -> Build Phases中將需要變成可見的標頭檔移動到public下。

2.5、將裡面有可直接調用方法的標頭檔添加到MYSDK.h中。

第三步:產生.framework靜態庫

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

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

3.2、同樣的道理選擇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.1、隨意建立一個工程,將合成的.framework靜態庫添加到工程(這裡只是說明靜態庫的使用,請忽略工程目錄結構)。然後在ViewController裡面匯入標頭檔調用靜態庫裡面的方法

5.2、分別在模擬器和手機端運行(iPhone X模擬器和iPhone 6S手機),結果如下(請忽略頁面配置,只是為了展示結果)。

            

 

至此,大功告成。

 

iOS SDK開發之 .framework靜態庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.