其實,IOS平臺是使用框架而不是dll,框架裏面包含公共頭文件和二進制文件。很不幸,XCode並不支持你自己去創建框架。
對於一個開發人員,這是個大問題,b/c缺少框架,我們就不得不去創建一個靜態庫文件。但是使用lib文件是一件痛苦的事情。實質上,向工程添加庫的引用,並告訴功能工程在哪裏可以找到你的頭文件,這對於用戶體驗並非一件好事
所以我們應該如何突破這個限制呢?
在查閱過大量的資料之後,我發現在gitHub上有一個非常驚人的開源項目:iOS-Universal-Framework. 這個工程基本上是一個項目模板。你只需安裝這個項目,現在你就多了一個新選擇來創建項目。
現在,讓我們討論安裝過程還有如何使用它:
- 下載zip文件.
- 保證你放在一個地方,並方便日後使用。B/C工程模板,每次你更新XCode的時候,你都需要重新安裝這個項目模板(不要擔心,安裝過程非常的快)。
- 確保XCode已完全關閉
- 解壓縮zip文件並轉到文件夾:Real Framework/install.sh(如果不行,你還要運行Fake Framework/install.sh)
- 如果你熟悉使用命令終端,只需運行install.sh。如果你不熟悉,那麼只需把它改名爲 install.sh.command 並雙擊運行它。
- 當它開始運行,它會詢問你:XCode安裝在哪裏。如果你沒有修改過默認XCODE的安裝路徑,只需回車確認。
- 然後它會再詢問你,需要安裝在什麼地方。只需敲入y並回車。
- 輸入密碼,回車
- 等待安裝結束
- 打開Xcode並打開New Project窗口。
- 在IOS選擇框架和庫的地方,你會發現多了一個選擇“Static iOS Framework”
現在,你有了一個全新的框架!但是,你應該如何使用它?
你基本上可以把它當做一個普通工程。但是,當你需要創建公共的API的時候,你需要告訴它。
現在讓我們一步一步創建一個框架,發佈你的公共API,並使用它!
- 使用new project對話框創建你的框架
- 你現在創建了一個空白的項目。現在我們添加一個新的類。在這個例子中,我們添加一個UIView的類,名字叫做MyView.
- 現在,我需要這個API供使用這個框架的開發者能正常使用,我需要讓.h文件變爲公共。點擊項目導航器的項目,並選擇build phase:
當你點擊擴展Copy Header面板,你會看到3個選項,Public, Private和 Project。默認設置的話,當你添加一個新的文件,它會在project中可見。當你需要把它改變爲public,只需把頭文件拖到public面板中。
4. 讓我們在class中輸入一些代碼:
01 @implementation MyView
02 -(id)init
03 {
04 self = [super init];
05 if(self)
06 {
07 self.backgroundColor = [UIColor orangeColor];
08 }
09 return self;
10 }
11 @end
我們把我們的View的默認背景顏色設爲橙色
5. 現在下一步是可選的。但是我的觀點是最好也配置一下。如果你使用Apple的默認框架的時候,你會發現import語句就像:#import UIKit/UIKit/.h 或者 #import QuartzCore/QuartzCore.h 。這有個優點,就是你知道框架的名字,然後知道引用哪個頭文件。這些頭文件在框架中全部是public的API。所以你不需要添加一堆頭文件。
所以讓我們按如下步驟來做。
第一,打開 Add New File對話框,並添加頭文件:
爲頭文件命名(跟框架的名字一樣),在頭文件裏面,加入#import語句,添加你的框架中所有的公共頭文件。
現在,不要忘記了在Build Phase面板它把變爲PUBLIC!!!(步驟3)
6. 編譯項目,現在就可以使用它了。
7. 創建一個新工程,對於這個例子我們就創建一個簡單的View應用,叫做MyApp.
8. 當項目創建後,點擊項目面板,並下拉到"Linked Frameworks and Libraries Section",並點擊加號按鈕:
現在點擊“Add Other”按鈕跳至你的框架頁面:
是時候寫些代碼了!
9. 首先打開ViewController.m文件,寫入你的代碼:
10. 運行你的項目,你就會看到如下畫面:
你現在就完成了一個框架,可以在不同的項目和組之間共享這個框架了!
我希望這篇文章對你來說是有用的。