iOS SDK开发(入门指南)

7,141 阅读2分钟

什么是SDK开发?

日常开发中,我们会遇到某些情况不能提供源码,项目组件化等需求,这时候我们就可以使用SDK开发,在OC的开发中,我们涉及到的一般是静态库(.a)或者动态库(.framework)。(注:不是所有的.framework就一定是动态库)

静态库与动态库的区别?

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。表现形式为 .a和.framework 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。 表现形式为 .dylib和.framework 注意:动态库只能苹果使用,如果项目中使用了动态库不允许上架(如:jspatch)

a与.framework有什么区别?

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。 .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。 .a + .h + sourceFile = .framework。 建议用.framework.

接下来将以实例帮助大家创建一个自己的.framework

首先我们先创建一个.workspace

workspace
创建完毕后,再创建一个.frmawork
创建frmawork
将创建好的frmawork加入到workspace
image.png
framewrok中可以封装入自己需要封装的内容
image.png
eg: 我在StringUtils中加入了一个测试方法

#import "StringUtils.h"

@implementation StringUtils
+ (NSString *)testString:(NSString *)string {
    
    return [@"MQTestFramework: " stringByAppendingString:string];
}
@end

接下来进行项目配置:

1、设置Build Setting参数 将Build Active Architecture only设置为NO

image.png

2、设置Build Setting参数 Mach-O Type 为Static Library (配置静态、动态)

image.png

3、设置Build Setting参数 在Architectures下增加armv7s

image.png

4、在Build Phases中设置需要公开和需要隐藏的头文件

image.png

5、将头文件引入到MQTestFramwork (自己SDK的头文件)

image.png
6、Command + B运行项目,在Product中找到framework
image.png
####framework使用 将封装好的.framework拉入需要使用的项目中
image.png
使用封装好的功能
image.png
运行:
image.png