iOS进阶iOSiOS

iOS 洪荒之力-SDK开发(一)

2016-08-30  本文已影响4962人  CocoaMan

前言

开发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 <UIKit/UIKit.h>

#import <MySDK/MySDKTest.h>

//! 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 <MySDK/PublicHeader.h>

在测试工程中进行测试

#import"ViewController.h"

#import <MySDK/MySDK.h>

@interface ViewController()

@end

@implementation ViewController

- (void)viewDidLoad {

    [superviewDidLoad];

    [MySDKTest printTest];

}

@end

到此,你已经完成了一个SDK工程的创建,接下来我们将对工程进行配置。

iOS 洪荒之力-SDK开发(二)

上一篇下一篇

猜你喜欢

热点阅读