1.动态库与静态库的区别
静态库:连接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝;
动态库:连接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存
系统的.framework是动态库,我们自己建立的.framework是静态库
.a与.framework的区别
a. .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件
b. .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用
c. .a + .h + sourceFile = .framework
3.打包环境
a.将Mach-O Type设为Static Library, framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库;
选中XMFramework->Build Settings->Mach-O Type(搜索mach)
b.Build Active Architecture Only 修改为NO, 否则生成的静态库就只支持当前设备的架构;
c.iOS Deployment Target, 静态库需要支持的最低版本号要小于等于主项目的版本号
d.Valid Architecture 支持的iOS的CPU架构
framework 模拟器版本和 release 版本合并命令:
lipo -create + 上面两个文件的路径+ -output + 合成后文件的输出路径