作为一个iOS开发人员,我们总会遇到一些不想公开的算法、逻辑。那就需要用到SDK,下面我简单的介绍一下SDK的封装和使用!!!
1.创建iOS Framework工程
首先我们需要创建一个iOS的CocoaTouch
工程,点击Next,输入我们Framework的名字即可。下方我们暂且将该Framework的名字命名为MyFramework
。如下所示:
2.设定兼容版本
创建完工程后,我们要选择
Deployment Target
, 此处我们选择的是8.0。也就是说此处我们封装的SDK所支持的iOS系统版本是iOS8.0+。3.选择“静态库”
我们创建的framework默认是动态库,所以我们要讲Mach-O Type设置为静态库“Static Library”,如下所示。
4.引入源代码并进行编译
①这里我创建的是SayHello类。
.h文件中
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface SayHello : NSObject
- (void)sayHello;
@end
NS_ASSUME_NONNULL_END
.m文件中
#import "SayHello.h"
@implementation SayHello
- (void)sayHello {
NSLog(@"hello world");
}
@end
下方截图中是在Build Phases
下的Headers
中进行设置的。将用户可以看到的头文件房子Public
中,用户看不到的放在Project中。如下所示。
5.编译
准备进行编译 分别在模拟器和真机的环境下进行编译,模拟器不用介绍了,真机的环境选择如图所示:
编译完后,在
Products
下会生成相应的Framework, 然后通过Show in Finder
进行查看即可。我们使用"
lipo -create
模拟器framework路径 真机framework路径 -output
新的文件"命令将上述两个文件进行合并。下方就是合并上述两个文件的执行命令, 执行完下方命令后会生成合并后的文件,将上述文件进行替换即可。经过上述步骤,我们的Framework至此就封装完毕了。经过上面的步骤,可以在计算机的根目录下找到MyFramework文件,将其替换项目中的两个同名的MyFramework文件,就此我们的SDK就已经制作完成了。
SDK的使用
SDK已经依赖的资源文件封装完毕后,接下来就是在其他App中使用了。引入SDK步骤也是比较简单的,这和引入友盟,个推,微信支付,支付宝等等SDK的步骤差不多。下方就是我们引入SDK的步骤。
我新建了一个test
工程
1.导入SDK并进行相关配置
2.配置完路径后,接下来我们要在Other Linker Flags添加上-Objc和-all_load选项。-Objc这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。而-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。根据上面介绍的,下方即使不添加-Objc这个选项,下方的工程也是可以正常运行的。
3.SDK的使用
配置完毕后,接下来就是在我们App中使用该SDK了。下方代码就是我们上述MyFramework的使用方式
#import "ViewController.h"
#import <MyFramework/MyFramework.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[SayHello alloc] sayHello];
}
@end