iOS打包静态库 超详细

前言
我们的项目总会导入各样的开源库,里面的“.frameworke”、“.a”、“.dylib”的文件很神秘,这段时间闲着,就研究研究它到底是怎样制作的。

静态库简介
iOS打包静态库 超详细_第1张图片
静态库简介.png

静态库的制作(.a)
1、以Xcode8为例,选择工程如下
iOS打包静态库 超详细_第2张图片
创建一个新工程.png

2、创建一个工具类,Tools用于测试


iOS打包静态库 超详细_第3张图片
测试类.png
3、设置需要暴漏的头文件-TARHETS-Build Phases-Copy Files-把需要暴漏的头文件添加进来即可
iOS打包静态库 超详细_第4张图片
暴漏文件设置.png
4、在不同环境下编译静态库(分为真机环境和模拟器环境)-command+B
iOS打包静态库 超详细_第5张图片
编译后.png
5、静态库使用测试
5.1 使用模拟器的静态库,拖入测试工程
iOS打包静态库 超详细_第6张图片
静态库测试.png

5.2 测试结果


iOS打包静态库 超详细_第7张图片
5s以上模拟器测试结果.png
iOS打包静态库 超详细_第8张图片
5s以下模拟器测试.png

真机运行.png

6、结果分析

  • 模拟器下的静态库和真机下静态库不能共用

  • 主要的原因是模拟器和真机CPU结构不一样(各个模拟器型号之间的架构也不一样)

  • 7、静态库所支持的架构

    iOS打包静态库 超详细_第9张图片
    静态库所支持的架构.png

    静态库文件的版本
    iOS打包静态库 超详细_第10张图片
    静态库文件版本.png

    静态库制作(.framework)

    iOS打包静态库 超详细_第11张图片
    静态库制作(.framework).png

    总结


    iOS打包静态库 超详细_第12张图片
    总结.png

    你可能感兴趣的:(iOS打包静态库 超详细)