一、创建.a静态库
-
新建一个静态库项目,如下图。
新建静态库项目.png -
在静态库中想要公开头文件给其他人使用,可以到项目中Build Phases->Copy Files 中点击 “ + ” 添加需要公开的头文件
添加公开的头文件.png -
选择静态库支持的CPU框架
选择需要编译的环境.png
编译成功可以用终端命令查看支持的CPU框架
$ lipo -info /Users/rambo/..../liblib.a (.a静态库路径)
如图,x86_64 是模拟器环境,arm64 是真机环境
把模拟器环境静态库和真机环境静态库合成一个静态库命令:
$ lipo -create 模拟器环境静态库.a文件路径
真机环境静态库.a文件路径
-output lib.a
再次用命令查看刚刚合并的.a静态库使用的环境就会出现x86_64 arm64
说明合并成功
二、创建.framework静态库
-
创建一个新的framework项目
新建framework项目.png -
在项目Build Settings 中修改 Mach-O Type 为 Static Library 静态库(Dynammic Library为动态库)
mach-o.png -
同样,要想公开头文件让别人使用,在项目 Build Phases -> Headers 中把需要公开的头文件拖到 Public 中,如下图
在dylib.h文件中导入公开的头文件
//
// dylib.h
//
#import <UIKit/UIKit.h>
//! Project version number for dylib.
FOUNDATION_EXPORT double dylibVersionNumber;
//! Project version string for dylib.
FOUNDATION_EXPORT const unsigned char dylibVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <dylib/PublicHeader.h>
#import "HBView.h"
- 按照.a静态库方法选择需要编译所要支持的CPU框架。用终端命令可以查看.framework静态库所支持的CPU框架:
$ lipo -info /Users/rambo/.../dylib.framework/dylib(.framework路径后面再拼接静态库名称)
- 合并两种系统框架的静态库
$ lipo -create~/dylib.framework/dylib (模拟器CPU框架.framework文件路径)
~/dylib.framework/dylib (真机CPU框架.framework文件路径)
-outputdylib.framework