iOS SDK开发(入门指南)

什么是SDK开发?

平常开发中,咱们会遇到某些状况不能提供源码,项目组件化等需求,这时候咱们就可使用SDK开发,在OC的开发中,咱们涉及到的通常是静态库(.a)或者动态库(.framework)。(注:不是全部的.framework就必定是动态库)bash

静态库与动态库的区别?

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

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
复制代码

接下来进行项目配置:

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

image.png

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

image.png

三、设置Build Setting参数 在Architectures下增长armv7s 3d

image.png

四、在Build Phases中设置须要公开和须要隐藏的头文件 code

image.png

五、将头文件引入到MQTestFramwork (本身SDK的头文件) cdn

image.png
六、 Command + B运行项目,在 Product中找到 framework
image.png
####framework使用 将封装好的 .framework拉入须要使用的项目中
image.png
使用封装好的功能
image.png
运行:
image.png
相关文章
相关标签/搜索