制作静态库
静态库:.a格式 .framework格式
制作工具:Xcode
示例:模拟器设备
制作后的库包含文件:二进制文件+头文件+其他资源文件(图片资源等)
一、.a 静态库的制作
1.创建Static Library项目
File-New-Project- iOS-Framewotk&Library-Static Library-自定义静态库名
创建任意文件或者添加已有的文件到项目
2.编译项目(生成静态库)
Product- Build(快捷键command+B),Products文件下的红色文件会变黑(旧版的Xcode会显示这个文件)
3.静态库路径
路径1:Products文件下的黑色文件右击-show in finder-右击包名-显示包内容
路径2:新版Xcode没有Products文件夹,可通过以下路径找到静态库
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Debug-iphonesimulator
⚠️StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc 这是项目的别名。建议在第二步之前先删除DerivedData文件下的内容,以防项目名多不好查找
4.静态库在目标项目中的使用
1.新建一个文件夹,把.a文件和头文件和资源文件放一起,添加入到目标项目
2.无须别的配置,导入头文件,可直接使用
二、.framework静态库的制作
1.创建Framework项目
File-New-Project- iOS-Framewotk&Library-Framework-自定义库名
创建任意文件或者添加已有的文件到项目
2.修改库为静态库
默认创建的Framework库是动态库,需手动改为静态库
Build Setting- Linking-Mach-O Type-选择Static Library
3.对外公开的头文件进行暴露
Build Phases-Headers
把想暴露的头文件从Project模块下拖到Public模块下
4.编译项目(生成静态库)
Product- Build(快捷键command+B),Products文件下的红色文件会变黑(旧版的Xcode会显示这个文件)
5.静态库路径
路径1:Products文件下的黑色文件右击-show in finder-右击包名-显示包内容
路径2:新版Xcode没有Products文件夹,可通过以下路径找到静态库
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Debug-iphonesimulator
⚠️StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc 这是项目的别名。建议在第二步之前先删除DerivedData文件下的内容,以防项目名多不好查找。
6.静态库在目标项目中的使用
1.把.framework添加入到目标项目
2.无须别的配置,导入头文件,可直接使用
三、合并静态库
静态库有四种模式:Debug模拟器,Debug真机,Release模拟器,Release真机
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Debug-iphonesimulator
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Debug-iphoneos
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Release-iphonesimulator
/Library/Developer/Xcode/DerivedData/StaticTool-bxkcwjehhbvnzvcvurqibktpqdmc/Build/Products/Release-iphoneos
使用终端合并,合并命令
1.cd 存放合并后的库的文件路径
2.lipo - create xxx.a xxx.a -output xxx.a
lipo - create 模拟器环境下的.a路径 真机环境下的.a路径 -output 合并后的(自定义).a库名
合并后的库既可以在模拟器上运行,也可以在真机上运行