iOS-导入静态库(绝不报错)

2,382 阅读3分钟

.a 静态库的创建

  1. 新建工程,选择 Static Library

image.png

  1. 创建测试的方法,我这里选择创建类方法,代码如下
//  Tool.h
@interface Tool : NSObject
+(void)testLog;
@end


//  Tool.m
@implementation Tool
+(void)testLog{
    NSLog(@"测试静态库");
}
@end

写入代码后,Command + B 编译,可以看到Products文件下的.a文件由红色变为黑色

image.png

  1. 如图所示进入Copy Files下,添加暴露文件,这里我添加的是Tool.h头文件

image.png

  1. 选择架构 在选择自己想要的设备下,这里我选择的是自己的真机

image.png

Build Active Architecture Only 选择 No

image.png

Command + B 再次编译

⚠️注意:选择真机下编译那么对应的就是真机的适应架构,如果你想要模拟器的架构,就选择在模拟器下进行编译生成.a文件

  1. 点击.a文件,右键打开文件目录

image.png

image.png 这个文件目录很重要!

(这里说一下刚刚说的真机和模拟器的区别,自己去尝试了之后发现两个的文件目录都会是不一样的,这里只做展示,接下来还是用的真机目录下的静态库)

image.png

以上是创建静态库的过程,下面是如何在新建的工程下导入我们刚刚创建的静态库

.a 静态库的导入

  1. 新建一个App工程

image.png

  1. 将刚刚的include文件和.a文件直接拖入到我们的工程中

image.png

image.png

  1. 复制include文件和.a文件,注意这里是复制!!!不要直接拖,上面那步是直接拖到Xcode中

show in finder进入文件目录

image.png

两个文件粘贴进去 (你如果是拖入的话那原来静态库的文件就会没有文件了,所以一定要是复制粘贴!)

image.png

  1. 删除原来的lib

image.png 将这时候的lib删除,重新导入

image.png

选择当前工程文件下的.a

image.png

此时Command + B 没有问题

  1. 写入代码,进行测试

image.png

  1. 运行,没有问题

image.png

.framework静态库的创建

  1. Command + Shift + N 创建 Framework

image.png

好多要设置的,别急别急,一个个来 2. 选择iOS版本,这里我选择的是12.1(根据自己的情况选择就可以了)

image.png

image.png

  1. Build Active Architecture Only 选择 No

image.png

  1. 设为静态库

image.png

  1. 创建类方法
//  Honey.h

@interface Honey : NSObject
+(void)testBaby;
@end


//  Honey.m

@implementation Honey
+(void)testBaby{
    NSLog(@"测试静态库framework");
}
@end
  1. 选择设备 注意这里还是真机就真机,模拟器就模拟器,模拟器和真机的架构不一样 这里我选择的是真机

image.png

  1. 选择Scheme,就是Debug或者是Release

image.png

image.png

这里选择debug或者release,我选择的是release

image.png

  1. 选择暴露文件

首先在HoneyFramework.h中导入Honey.h

image.png

然后拖动文件

image.png

拖完后如图所示

image.png

  1. 编译,查看文件 show in finder转到文件目录

image.png

image.png

到这里我们的静态库就已经创建完成啦~

.framework静态库的导入

不知道为什么我的framework没有子目录

  1. 新建工程

image.png

  1. 拖入framework到工程下

image.png

  1. 进入到工程文件的目录下

image.png

  1. 拷贝framework文件夹到工程文件目录下

image.png

image.png

  1. 删除原来就有的该framework,导入新的

image.png

image.png

image.png

导入完成

image.png

  1. command + B 编译没有问题

  2. 测试方法

image.png

以下两种方式导入都可以

#import <HoneyFramework/HoneyFramework.h>
#import "HoneyFramework.framework/Headers/Honey.h"
  1. 运行,打印结果无问题

image.png