IOS創建自己的框架


其實,IOS平臺是使用框架而不是dll,框架裏面包含公共頭文件和二進制文件。很不幸,XCode並不支持你自己去創建框架。

對於一個開發人員,這是個大問題,b/c缺少框架,我們就不得不去創建一個靜態庫文件。但是使用lib文件是一件痛苦的事情。實質上,向工程添加庫的引用,並告訴功能工程在哪裏可以找到你的頭文件,這對於用戶體驗並非一件好事


所以我們應該如何突破這個限制呢?

在查閱過大量的資料之後,我發現在gitHub上有一個非常驚人的開源項目:iOS-Universal-Framework. 這個工程基本上是一個項目模板。你只需安裝這個項目,現在你就多了一個新選擇來創建項目。

現在,讓我們討論安裝過程還有如何使用它:

  1. 下載zip文件.
  2. 保證你放在一個地方,並方便日後使用。B/C工程模板,每次你更新XCode的時候,你都需要重新安裝這個項目模板(不要擔心,安裝過程非常的快)。
  3. 確保XCode已完全關閉
  4. 解壓縮zip文件並轉到文件夾:Real Framework/install.sh(如果不行,你還要運行Fake Framework/install.sh)
  5. 如果你熟悉使用命令終端,只需運行install.sh。如果你不熟悉,那麼只需把它改名爲 install.sh.command 並雙擊運行它。
  6. 當它開始運行,它會詢問你:XCode安裝在哪裏。如果你沒有修改過默認XCODE的安裝路徑,只需回車確認。
  7. 然後它會再詢問你,需要安裝在什麼地方。只需敲入y並回車。
  8. 輸入密碼,回車
  9. 等待安裝結束
  10. 打開Xcode並打開New Project窗口。
  11. 在IOS選擇框架和庫的地方,你會發現多了一個選擇“Static iOS Framework” 
 

現在,你有了一個全新的框架!但是,你應該如何使用它?

你基本上可以把它當做一個普通工程。但是,當你需要創建公共的API的時候,你需要告訴它。

現在讓我們一步一步創建一個框架,發佈你的公共API,並使用它!

  1. 使用new project對話框創建你的框架
  2. 你現在創建了一個空白的項目。現在我們添加一個新的類。在這個例子中,我們添加一個UIView的類,名字叫做MyView.
  3. 現在,我需要這個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. 運行你的項目,你就會看到如下畫面:

你現在就完成了一個框架,可以在不同的項目和組之間共享這個框架了!

我希望這篇文章對你來說是有用的。

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