iOS开发 封装SDK
2020-05-25 本文已影响0人
隔墙送来秋千影
category是项目开发中经常用到的,把category打包成静态库是没有问题的,但是在使用这个静态库时,
调用category中的方法时会发生找不到该方法的运行时错误(selector not recognized),
解决的办法是在使用静态库的工程中配置other linker flags的值为 -ObjC -all_load
![](https://img.haomeiwen.com/i1712578/b58c646ba5a210f4.png)
![](https://img.haomeiwen.com/i1712578/7c413b4d315f0681.png)
![](https://img.haomeiwen.com/i1712578/7de14c81a3549e59.png)
![](https://img.haomeiwen.com/i1712578/b5f1534a226f01c8.png)
![](https://img.haomeiwen.com/i1712578/3460346adbd8d6eb.png)
6,HelloWorld.h中
//
// HelloWorld.h
// MySDK
//
// Created by Twinkleo on 2020/5/25.
// Copyright © 2020 Twinkleo. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface HelloWorld : NSObject
- (void) logTest;
@end
NS_ASSUME_NONNULL_END
7,HelloWorld.m中
//
// HelloWorld.m
// MySDK
//
// Created by Twinkleo on 2020/5/25.
// Copyright © 2020 Twinkleo. All rights reserved.
//
#import "HelloWorld.h"
@implementation HelloWorld
- (void) logTest {
NSLog(@"SDK测试-----Hello World");
}
@end
8,设置需要公开给用户的头文件,下面的直接拖拽到Public中
![](https://img.haomeiwen.com/i1712578/177992bae26355c6.png)
![](https://img.haomeiwen.com/i1712578/5b4799bf3115774e.png)
![](https://img.haomeiwen.com/i1712578/ae3f120b307eaf19.png)
![](https://img.haomeiwen.com/i1712578/e4fddf9c2154f062.png)
![](https://img.haomeiwen.com/i1712578/96934cf43276017e.png)
![](https://img.haomeiwen.com/i1712578/7ded3913756204ae.png)
![](https://img.haomeiwen.com/i1712578/4b44574d926c0dcf.png)
![](https://img.haomeiwen.com/i1712578/08ac59e862de606a.png)
15,合并,打开终端,格式
lipo -create 模拟器framework的路径 真机framework路径 -output 新的路径
![](https://img.haomeiwen.com/i1712578/b2d5bd29557cdd50.png)
![](https://img.haomeiwen.com/i1712578/dcde993481a5c402.png)
17,拿到最终的MySDK.framework
18,测试刚才生成的MySDK.framework
19,新建一个iOS项目,将刚才生成的MySDK.framework直接拖到项目中![](https://img.haomeiwen.com/i1712578/99780683a3032b21.png)
![](https://img.haomeiwen.com/i1712578/8e3ed5829007cf61.png)
21,打完收工,基本完成。