平常開發中,咱們會遇到某些狀況不能提供源碼,項目組件化等需求,這時候咱們就可使用SDK開發,在OC的開發中,咱們涉及到的通常是靜態庫(.a)或者動態庫(.framework)。(注:不是全部的.framework就必定是動態庫)
bash
靜態庫:連接時完整地拷貝至可執行文件中,被屢次使用就有多份冗餘拷貝。表現形式爲 .a和.framework
動態庫:連接時不復制,程序運行時由系統動態加載到內存,供程序調用,系統只加載一次,多個程序共用,節省內存。 表現形式爲 .dylib和.framework
注意:動態庫只能蘋果使用,若是項目中使用了動態庫不容許上架(如:jspatch)
jsp
.a是一個純二進制文件,.framework中除了有二進制文件以外還有資源文件。 .a文件不能直接使用,至少要有.h文件配合,.framework文件能夠直接使用。 .a + .h + sourceFile = .framework。 建議用.framework.組件化
.framework
首先咱們先建立一個.workspace
測試
.frmawork
將建立好的
frmawork
加入到
workspace
在
framewrok
中能夠封裝入本身須要封裝的內容
eg: 我在
StringUtils
中加入了一個測試方法
#import "StringUtils.h"
@implementation StringUtils
+ (NSString *)testString:(NSString *)string {
return [@"MQTestFramework: " stringByAppendingString:string];
}
@end
複製代碼
一、設置Build Setting參數 將Build Active Architecture only設置爲NO ui
二、設置Build Setting參數 Mach-O Type 爲Static Library (配置靜態、動態) spa
三、設置Build Setting參數 在Architectures下增長armv7s 3d
四、在Build Phases中設置須要公開和須要隱藏的頭文件 code
五、將頭文件引入到MQTestFramwork
(本身SDK的頭文件) cdn
Command + B
運行項目,在
Product
中找到
framework
####framework使用 將封裝好的
.framework
拉入須要使用的項目中
使用封裝好的功能
運行: