在 xcode 4 下為 iOS 製作 framework

來源:互聯網
上載者:User

寫在前面:

通過 Framework 可以在物理上實現 iOS 程式的模組化。

好處:

      1、如果模組間介面定義的比較完善,模組化的程式具有很好的可擴充性與內聚性;

      2、物理上的模組化便於開發過程的管理與測試,尤其是在程式規模相對大。

      3、如果可以使用膠水語言作為粘合劑,程式可以用很少的代價適應未來的變化。

不足:

      1、由於是靜態庫,應該不會有什麼運行時的損失,但是沒實驗過,不確定。

      2、資源的載入這部分,不知道會不會佔用更多記憶體,沒實驗,不確定。



 

1、建立一個靜態庫工程:

 

 

2、刪除嚮導所產生工程中的 Target:

刪除目標前工程狀態


刪除目標後工程狀態



 

3、刪除舊目標對應的工程檔案夾:

刪除前


刪除後



 

4、刪除舊目標對應的編譯設定(Product菜單| Edit Scheme命令):

 

點擊左下角的 Manage Schemes 按鈕:


選中舊的 Scheme,點擊左下角的減號刪除:

刪除完成後,點擊 OK 返回。



 

5、增加一個新目標。點擊 “Add Target”:


在彈出的對話方塊中選擇 Mac OS X 下的 Bundle:

如,給庫取一個名字,保持預設的 Framework(CoreFoundation),然後點擊 Finish。



 

6、修改新目標的工程設定。選中 TARGETS 中對應的目標, Build Settings 頁:

 

在 Architectures 下,將”Base SDK”改為”Latest iOS”,然後將 “Architectures” 改為 “Standard”:

 

在 Deployment 下,將 “Mac OS X Deployment Target”改為”Compiler Default”,將 “Targeted Device Family”改為需要的,此處改成了”iPhone/iPad”,同時可以根據需要修改 “iOS Deployment Target”,此處改為了 “iOS 3.0”:

 

在 Linking 中,將 “Dead Code Stripping” 改為 “NO”,將 “Link with Standard Libraries” 改為 “NO”,將 “Mac-O Type” 改為 “Relocatable Object File”:

 

在 Packaging 中,將 “Wrapper Extention” 改為“framework”:

 

 

 

7、修改目標的 Info。點擊 Info:


將 “Bundle OS Type Code” 改為 “FMWK”(Framework 的意思):

 

 

8、修改先行編譯頭:

修改前


修改後



 

9、向工程中添加一個類(ViewController 與 Xib):


結果如下:

 

 

 

10、匯出相關檔案。選中 Target,點擊 Build Phases:


點擊右下角的 “Add Build Phase”:


在彈出的菜單中選擇 “Add Copy Headers”,添加完成後,展開 “Copy Headers”:


點擊加號:


選中需要暴露的標頭檔,此處我們選擇 “ClassA.h”:


點擊 Add 按鈕完成添加:


此時,我們看到匯出的檔案在 Project 下,這樣是不能暴露給別人使用的,將其拖動到 Public 下:


關於 Framework 的詳細說明參考蘋果的線上文檔:http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1

 

 

11、編譯項目,查看結果:

 

 

 

12、這是手工製作 Framework 的方法,網上有人製作了工程模版,可以直接產生 Framework 工程:

https://github.com/kstenerud/iOS-Universal-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.