一、 动态库制作
1.创建动态库工程
Xcode -> Create a new Xcode project -> iOS -> Framework
2.将代码导入工程 选择Create groups(逻辑路径)
3.配置搜索路径
在Build Settings 搜索 search path,找到Header Search Paths,配置为代码头文件的路径
$(PROJECT_DIR)/FrameworkTest
$(PROJECT_DIR) 表示当前工程路径
4.暴露头文件(.h)以供SDK使用者调用
在Bulid Phases 中找到Headers目录,将需要暴露的头文件拖到public目录下
5.编译配置
苹果架构分为x86_64(模拟器) arm64
苹果包分为 Debug 和 Release
一般都是使用arm64
调试时,使用Debug包,上线使用Release
5.1 Debug 和 Release 切换
Release: 选中工程->Edit Scheme->Run->Build Configuration->Release
Debug: 选中工程->Edit Scheme->Run->Build Configuration->Debug
5.2 X86_64 和 arm64 切换
使用模拟器运行,制作的SDK是X86_64
使用真机运行,制作的SDK是arm64
6 Run工程获取SDK
Clean: Product -> Clean Build Folder
Run工程后,在Product->Show Bulid Folder in Finder -> Products 中获取SDK
动态库 是 以.framework 结尾
使用真机运行可能出现的问题这是由于真机的系统版本低于工程设置的最低版本
修改工程的最低版本
可通过lipo -info 来查看动态库信息
lipo -info FrameworkTest
动态库要cd到xxx.framework文件内,再lipo -info xxx
二、静态库
1.创建动态库工程
Xcode -> Create a new Xcode project -> iOS -> Static Library
2.将代码导入工程 选择Create groups(逻辑路径)
3.配置搜索路径
在Build Settings 搜索 search path,找到Header Search Paths,配置为代码头文件的路径
$(PROJECT_DIR)/StaticTest
$(PROJECT_DIR) 表示当前工程路径
4.暴露头文件(.h)以供SDK使用者调用
4.1 Bulid Phases -> Copy Files -> + 将所有.h Copy进工程
4.2 Bulid Phases -> + -> New Headers Phase
4.3 Headers -> + 导入所有头文件
4.4 将所有需要暴露的头文件拖到public
5.编译配置
和动态库一样
6 Run工程获取SDK
和动态库一样
Clean: Product -> Clean Build Folder
Run工程后,在Product->Show Bulid Folder in Finder -> Products 中获取SDK
静态库 是以.a结尾
可通过lipo -info 来查看静态库信息
lipo -info xxx.a
三、动态库、静态库使用
1. 创建工程
Xcode -> Create a new Xcode project -> iOS -> App
2.导入自制库(静态库or动态库)
静态库需导入xxx.a 文件和Include中.h文件
3.配置lib搜索路径
Build Settings -> 搜索 search path
动态库需配置Framework Search Paths 和 Header Search Paths,对应xxx.framework的路径和xxx.framework/Headers中的.h文件的路径
静态库需配置Library Search Paths 和 Header Search Paths,对应xxx.a的路径和include中的.h文件路径
4.代码中使用自制库
4.1 引用头文件
动态库:
#import
静态库
#import "json.h"
4.2 示例代码
由于是C++和OC混编,因而在使用C++方法的类需改成.mm
Json::Value info;
info["scnnelID"] = "123";
info["memberID"] = "234";
std::string msg = info.toStyledString();
printf("%s\n", msg.c_str());