美文网首页iOS
iOS 之.a静态库创建、打包以及静态库之间的引用

iOS 之.a静态库创建、打包以及静态库之间的引用

作者: 13d8cd576232 | 来源:发表于2019-04-29 10:31 被阅读0次

    实际开发中离不开静态库的使用,记录一下

    静态库有两种, .a静态库 和 .framework静态库的区别

    .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
    .a + .h + sourceFile = .framework。

    Workspace 管理项目 添加静态库

    创建


    Pasted Graphic 1.png Pasted Graphic 2.png Pasted Graphic 3.png Pasted Graphic.png

    配置如下

    Pasted Graphic 4.png

    加到主工程


    Pasted Graphic 6.png

    配置路径


    Pasted Graphic 5.png

    导入头文件 使用

    Pasted Graphic 7.png

    打包静态库 (.a静态库)(包括workspace中的静态库(.a) 一样的步骤)

    模拟器静态库打包
    1、公开接口头文件

    targets->Build Phases->Copy Files->"+"你需要公开的头文件


    Pasted Graphic.png
    2、设置适配所有模拟器架构(模拟器i386和x86_64)(Build Active Architecture Only )
    Pasted Graphic 4.png
    3、编译静态库 (command + B 或 command + R )
    右键 show in finder Pasted Graphic 3.png Pasted Graphic 2.png
    4、导入工程 (注意 需要将.a文件和头文件放到一个文件夹下)
    Pasted Graphic 5.png
    5、导入头文件就可以使用了
    Pasted Graphic 6.png

    真机静态库打包

    所有流程都跟上面的一样,只是我们运行打包时要选择真机运行,你可以选择自己插上去的真机,也可以选择Generic ios Devices。当然不要忘记了设置支持所有真机机型架构: Build Active Architecture Only 设为NO。

    合并模拟器静态库和真机静态库

    分别使用真机或者Generic iOS Device 和 随便一个模拟器运行静态库 得到模拟器静态库和真机静态库 然后在Finder 中打开

    Pasted Graphic 8.png Pasted Graphic 9.png

    Show in Finder


    Pasted Graphic 10.png Pasted Graphic 11.png

    通过命令行合并 (注意 库的名称要一致)
    lipo -create 第一个.a文件的绝对路径 第二个.a文件的绝对路径 -output 最终的.a文件路径

    Pasted Graphic 12.png

    然后在工程中将这个.a 替换就支持真机和模拟器了

    静态库之间的引用

    1、如下图,workspace中的静态库project 引入 主工程包内的静态库

    workspace里 Argos是主工程 LJNetwork是一个静态库工程 AGFramework.framework是打包好并导入到主工程的静态库
    现在LJNetwork要引用AGFramework.framework库
    只需要在LJNetwork的Build Setting —> User Header Search Paths 中 拉入AGFramework.framework中的Headers文件夹的路径


    Pasted Graphic.png
    2、两个静态库工程之间的引用

    静态库LJNetwork引用 静态库LJFoundation的文件


    Pasted Graphic 13.png

    配置如下


    Pasted Graphic 14.png
    3 静态库引用pods中的三方库

    静态库LJNetwork要引用pods中的AFNetworking 如下设置


    Pasted Graphic 1.png

    个人博客地址:https://youyou0909.github.io

    相关文章

      网友评论

        本文标题:iOS 之.a静态库创建、打包以及静态库之间的引用

        本文链接:https://www.haomeiwen.com/subject/ukvenqtx.html