▲点击上方“CocoaChina”关注即可免费学习iOS开发
作者:CocoaMan
原文链接:http://www.jianshu.com/p/813477451c28
开发SDK有一段时间了,这算是一篇总结贴,或者说教程也好,总之会把我经历的一些过程详细描述出来。设计到图文或者相关Code,篇幅可能较长,我会拆分出几个章节来进行,更加方便进行查阅。同时也欢迎各位行家来围观并指正。
用过别人的SDK都知道,有两种形式,一是一个.a文件带上一堆头文件,另一种就是一个简单的framework文件。iOS8之前并不支持动态框架,所以framework实际上也就是对静态库的一种包装而已,不过其方便性可想而知,因而选用framework是一个不错的方式。本文设计SDK支持iOS7以上,所以对动态框架并不做过多介绍。
接下来我们开始创建工程,建工程前我会先建文件夹,大致如下
从名称来看,应该比较清晰,不做过多说明,现在打开Xcode开始创建工程
以上两步创建framework工程,该工程内部将主要包含我们的SDK源码。现在开始创建测试工程,方便对SDK进行调试。
到这里,我们已经创建了两个工程,需要将这两个工程关联起来,这里需要用到Workspace,仍然打开Xcode,选择File->New->Workspace,命名好你的Workspace并创建,这时候我们看到SDK目录下面应该是:
好,现在打开workspace,依次把之前创建的framework工程和测试工程拖进workspace内
现在选中MySDKTests->TARGETS->Build Phases,在Link Binary With Libraries中加入MySDK.framework
现在我们可以开始在framework工程中创建文件,并在测试工程中进行测试,选中framework工程,新建MySDKTest类,需要设置该类为public,以便外部能访问到
MySDKTest.h
@interface MySDKTest : NSObject
+ (void)printTest;
@end
MySDKTest.m
#import "MySDKTest.h"
@implementation MySDKTest
+ (void)printTest {
NSLog(@"MySDK Test");
}
@end
MySDK.h 把公开的头文件放在此处是个不错的方式
#import
#import
//! Project version number for MySDK.
FOUNDATION_EXPORT double MySDKVersionNumber;
//! Project version string for MySDK.
FOUNDATION_EXPORT const unsigned char MySDKVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import
在测试工程中进行测试
#import"ViewController.h"
#import
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
[MySDKTest printTest];
}
@end
到此,你已经完成了一个SDK工程的创建,接下来我们将对工程进行配置。
最近发现一个好玩的测试,互联网从业者都应该来试下,我得了 85 分,看看你能不能超过我!长按图片识别二维码或者点击阅读原文就可以参与。
微信号:CocoaChinabbs
▲长按二维码“识别”关注即可免费学习 iOS 开发
月薪十万、出任CEO、赢娶白富美、走上人生巅峰不是梦
--------------------------------------
商务合作QQ:2408167315
投稿邮箱:[email protected]