iOS程序中为了保持多个项目代码的互用或者提供自己代码给别人执行又不想暴露自己的源码,通常采用建立静态库或者动态库的方式,今天我就介绍下这两个库的建立以及使用

一、.a库的创建以及使用:

1、基本创建:

iOS 静态库和动态库创建

iOS 静态库和动态库创建

.a一定要选取为oc语言,不然后面没发引用

iOS 静态库和动态库创建

接下来在库里面编写需要的代码,例:

LibTest.h里面:

+(void)showMsg;

LibTest.m里面:

+(void)showMsg{
    NSLog(@"ios lib test");
}

选择添加要暴露出的.h接口文件:

iOS 静态库和动态库创建

然后build就会出现生成的包了:

iOS 静态库和动态库创建

打开包内容:

iOS 静态库和动态库创建

将生成的包和.h文件放在同一文件夹以供调用:

iOS 静态库和动态库创建

2、oc工程调用:

放在同一文件中直接引入项目:

iOS 静态库和动态库创建

.h导入,.m调用:

#import "LibTest.h"

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
       [LibTest showMsg];
}

这样同一虚拟机就可以调用了,不同虚拟机、真机、打包问题将在下面介绍

3、swift工程调用:

因为.a包是oc的所以需要引入桥接文件:

建立方式:新建oc文件自动配置:

iOS 静态库和动态库创建

如果没有弹出来,或者点击了取消:

新建header文件:

iOS 静态库和动态库创建

配置桥接文件:Building Setting里面,ocBridgingHeader配置如下路径:工程名/文件名.h

iOS 静态库和动态库创建

新建.h刚出来改为如下图所示倒包,这样就完成oc和swift混编了:

iOS 静态库和动态库创建

swift调用:

  override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        LibTest.showMsg()
    }

二、.framework创建以及使用:

1、工程外创建引用

1.1、工程外创建:

iOS 静态库和动态库创建

编辑代码,外部可以调用的类用public修饰:

iOS 静态库和动态库创建

1.2调用:直接framework包拖入调用

iOS 静态库和动态库创建

如果提示找不到,去配置里面添加引用:

iOS 静态库和动态库创建

2、工程内创建引用:

2.1 创建:

在工程内创建引用,源码可见,但可以供其他项目直接调用,且不同虚拟机、真机等不需要单独处理直接运行就好,最好搭配gitsubmodules使用

首先最好见一个workspace,项目添加在这个里面,按上面的添加.framework工程,在这步选择加入哪个workspace:

iOS 静态库和动态库创建

内容填充:

注意需要调用的类和方法用public修饰:(字段权限:public 可以跨库调用,open:本库里面可以调用,interval:默认普通权限,fileprivate:本文件里面可以调用,private:只有本类里面可以访问)

iOS 静态库和动态库创建

2.2 调用:

添加引用:

iOS 静态库和动态库创建

直接import调用:

iOS 静态库和动态库创建

三、兼容真机、虚拟机

四、archive处理

五、资源文件处理

相关文章:

  • 2022-12-23
  • 2021-10-11
  • 2021-08-14
  • 2022-01-17
  • 2021-07-27
  • 2022-12-23
猜你喜欢
  • 2021-10-09
  • 2021-04-12
  • 2021-10-11
  • 2022-12-23
  • 2021-12-22
相关资源
相似解决方案