開源架構iOS-Universal-Framework協助快速建立一個共用的庫

來源:互聯網
上載者:User

開源架構,協助快速建立一個共用的庫,方便team開發:

https://github.com/kstenerud/iOS-Universal-Framework

參考:

http://blog.csdn.net/kmyhy/article/details/7419222

這個東西總結起來就是協助封裝:lib以及resource,主要3步:

1.把現有的項目(需要供其它人使用的)準備好

2.把東西全部拖動到realframe的項目裡面,編譯項有些特殊。會暴露.h 

3. 把2中輸出的檔案拖到需要使用封裝的lib的項目中,然後就和一般使用系統lib一樣的方式,imports header,使用其中的方法/類等。

在項目開發中,共用代碼是很常見的。

由於iOS的限制,我們無法以“動態庫”的形式共用代碼。除了以原始碼方式,我們只能選擇靜態庫來共用代碼。

“真架構”項目以編譯後的二進位形式共用代碼,本質上還是一種靜態庫。但由於Xcode的限制(沒有提供相應的項目模板),要以架構的形式編譯出靜態庫,仍然十分麻煩。

首先,你需要下載 iOS Universal Framework Mk 7。解壓elc-ELCImagePickerController-b5357fa.zip。在解壓目錄下,開啟終端運行RealFramework目錄(即“真架構”)下的install.sh指令碼。真架構就會安裝到Xcode中。

注意:install.sh指令碼需要root許可權。

 

現在我們準備把一個正常的Application項目封裝為“真架構”項目。這個正常的Application項目可以獨立運行,擁有自己的window、viewcontroller和圖形介面。

當然,你手上可能擁有別的Application項目,你完全可以把自己的Application項目封裝為“真架構”。

把這個Application項目的資源:.h檔案、.m檔案、.xib檔案、.png檔案、.plist檔案,甚至是資料庫檔案都拖到TestFramework項目中來,封裝!

將所需標頭檔拖到Public段。凡是使用該架構時要用到的標頭檔都應該聲明為Public。這裡,為圖省事,我把所有標頭檔都聲明為Public了。

然後Build項目。編譯結果將放在“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}”目錄下。每個BUILD_TYPE目錄下都有一個.embeddedframework和一個.framework檔案。其中.framework只包含代碼,.embeddedframework除代碼外還包括資源。一般使用.embeddedframework。

注意,有時候編譯出現“UILable 類型未聲明”之類的錯誤。這是因為在Application項目中,預設是包含UIKit標頭檔的,而“真架構”項目卻未包含UIKite標頭檔,所有的UIKit類型都不能被Xcode正確識別。我們只需要在.pch檔案中加入“#import <UIKit/UIKit.h>”語句即可。

二、使用“真架構”

很簡單,建立一個Application項目,將.embeddedframework檔案(其實是一個檔案夾)直接拖到專案檔夾中:

 

在TestFramework.embbeddedframework中,已經包含了TestFramework.framework,同時還有一個Resources目錄,包含了真架構用到的所有資源。

查看Target的Builder Phases,你可以發現TestFramework.framework架構已經被包含進LinkBinary with Libraries了。

當然,由於“真架構”並不會把依賴的庫編譯到架構檔案中(僅僅是引用),我們還必需在項目中加入TestFramework架構所用到的其他庫和/架構(圖中所列的庫/架構因具體項目而異):

 

現在,我們就可以在Application中使用真架構了:

#import <TestFramework/System.h>

⋯⋯

System* vc=[[Systemalloc]init];

self.window.rootViewController=vc;

[vc release];

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.