category是项目开发中经常用到的,把category打包成静态库是没有问题的,但是在使用这个静态库时,
调用category中的方法时会发生找不到该方法的运行时错误(selector not recognized),
解决的办法是在使用静态库的工程中配置other linker flags的值为 -ObjC -all_load

截屏2020-05-25 上午11.44.06.png

截屏2020-05-25 上午11.44.49.png

截屏2020-05-25 上午11.50.15.png

截屏2020-05-25 上午11.52.39.png

截屏2020-05-25 上午11.58.11.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中
截屏2020-05-25 下午12.00.33.png

截屏2020-05-25 下午12.02.45.png

截屏2020-05-25 下午12.03.58.png

截屏2020-05-25 下午1.58.10.png

截屏2020-05-25 下午1.58.30.png

截屏2020-05-25 下午1.58.39.png

截屏2020-05-25 下午2.01.26.png

截屏2020-05-25 下午2.04.03.png
15,合并,打开终端,格式
lipo -create 模拟器framework的路径 真机framework路径 -output 新的路径

截屏2020-05-25 下午2.10.08.png

截屏2020-05-25 下午2.14.50.png
17,拿到最终的MySDK.framework
18,测试刚才生成的MySDK.framework
19,新建一个iOS项目,将刚才生成的MySDK.framework直接拖到项目中
截屏2020-05-25 下午2.27.27.png

截屏2020-05-25 下午2.31.33.png
21,打完收工,基本完成。