iOS开发技术

iOS开发 封装SDK

2020-05-25  本文已影响0人  隔墙送来秋千影

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

1,创建项目,选择Framework 截屏2020-05-25 上午11.44.06.png 2,常规命名 截屏2020-05-25 上午11.44.49.png 3,设置兼容版本,版本这个看需求吧 截屏2020-05-25 上午11.50.15.png 4,修改动态库为静态库,我们创建的framework默认是动态库,苹果审核中如果发现动态库的话似乎会审核不通过,所以我们要将Mach-O Type设置为静态库 Static Library 截屏2020-05-25 上午11.52.39.png 5,导入所需要封装的代码,这里先直接创建演示,创建HelloWorld类,常规创建 截屏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 9,设置头文件,头文件引用 截屏2020-05-25 下午12.03.58.png 10,模拟器下编译一下 截屏2020-05-25 下午1.58.10.png 11,切换到真机状态,左侧framework变红,开始编译 截屏2020-05-25 下午1.58.30.png 12,Generic iOS Device下编译以后 截屏2020-05-25 下午1.58.39.png 13,选中,右键Show in Finder 截屏2020-05-25 下午2.01.26.png 14,对应真机和模拟器状态下的sdk 截屏2020-05-25 下午2.04.03.png

15,合并,打开终端,格式

lipo -create 模拟器framework的路径 真机framework路径 -output  新的路径
截屏2020-05-25 下午2.10.08.png 16,在根目录下会拿到新的framework,替换掉原来的 截屏2020-05-25 下午2.14.50.png

17,拿到最终的MySDK.framework

18,测试刚才生成的MySDK.framework

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

21,打完收工,基本完成。

后续还会有一些其他细节,之后会添加上,暂时先就这些吧

上一篇下一篇

猜你喜欢

热点阅读