美文网首页iOS干货
iOS中Framework如何制作

iOS中Framework如何制作

作者: LoveToday2020 | 来源:发表于2020-08-18 17:17 被阅读0次

    无论我们是在开发中还是在业务对接中,制作Framework都是经常遇到的,那我们如何对其进行制作哪,首先我们先来看下动态库与静态库的区别,我们了解的越多,那么我们对于自己做的事情也就越得心应手。

    动态库与静态库的区别

    静态库:连接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝;
    动态库:连接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存
    系统的.framework是动态库,我们自己建立的.framework是静态库

    .a与.framework的区别

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

    打包Framework流程

    1.创建Framework工程

    File->Project->Framework(选择iOS, 以及选择Framework & Library) 
    命名工程是XMFramework
    

    2.添加要集成打包的类.h/.m/.a/Bundle/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架构
    
    1. 工程配置
      a. 在frameworks下的Build Phases下的headers里面会有三个目录
      Public, Private, Project
    将要给用户暴露出来的头文件加入到Public中,将要隐藏的头文件      拖入Private或是Project下
    这样隐藏的头文件将无法被引用了
    

    b.把允许别人应用的头文件引入到第一步创建项目是自动生成的 XMFramewok.h中,XMFramewok.h文件是整个包对外提供的入口头 文件
    5.合并打包

    1. 分别在模拟器和真机设备下编译,生成两个XMFramewok.framework文件,然后将两个文件使用命令合成一个
    lipo -create + 上面两个文件的路径+ -output + 合成后文件的输出路径
    
    1. 将上部生成的framework放入到真机编译的包中,就是将其替换掉,就得到了最终的是支持模拟器又支持真机的framework了

    相关文章

      网友评论

        本文标题:iOS中Framework如何制作

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