文章目录
- 1. 创建.framework
- 2. 创建.a
- 2.1. 新建Xcode项目选择 Cocoa Touch Static Library
- 2.2. 新建一个测试类
- 2.3. 配置headers-在Build Phases -> Copy Files下将你要提供给外部调用的头文件添加进来
- 2.4. 在target-> build setting - > link下将Build Active Architecture Only设置为NO
- 2.5. 切换scame在run 时为release,然后CMD+B编译项目
- 2.6. 编译以后会在Xcode左侧Products文件夹下会生成.a文件,之后show in find,将.a文件佶include下的.h文件一起倒入项目
- 2.7. 将静态库导入项目中确保已经导入
创建静态库的方式有两种,分别为.a跟.framework。
创建.framework
新建Xcode项目选择 Cocoa Touch Framework

新建一个测试类
1 | // Test.h |
配置headers-在Build Phases -> Headers下将Project下的你要提供给外部调用的头文件拖到Public下

在target-> build setting - > link下修改基本配置

1、首先是Dead Code Stripping设置为NO,网上对此项的解释如下,大致意思是如果开启此项就会对代码中的”dead”、”unreachable”的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,将此项关闭也未曾不可。
2、然后将Link With Standard Libraries关闭,我想可能是为了避免重复链接
3、最后将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。
将静态库导入项目中确保已经导入

1 | /// 导入头文件 |
创建.a
新建Xcode项目选择 Cocoa Touch Static Library

新建一个测试类
1 | // Test.h |
配置headers-在Build Phases -> Copy Files下将你要提供给外部调用的头文件添加进来

在target-> build setting - > link下将Build Active Architecture Only设置为NO

Build Active Architecture Only选项设置 Build Setting里面的Build Active Architecture Only设置为NO。Build Active Architecture Only设置为YES时,是为了debug的时候编译速度更快,此时它只编译当前的architecture版本。设置为NO时,会编译所有的版本。
切换scame在run 时为release,然后CMD+B编译项目

编译以后会在Xcode左侧Products文件夹下会生成.a文件,之后show in find,将.a文件佶include下的.h文件一起倒入项目


将静态库导入项目中确保已经导入

1 | /// 导入头文件 |