• iOS静态库的制作


    iOS静态库的制作

    背景知识

    • 库可以分为静态库和动态库,通常使用制作的都是静态库,使用自己制作的动态库是不能上线的。
    • 静态库每次使用都会加载一次,比较耗资源。动态库一般是系统公用的,只需要加载一次,也就是多个App使用的是同一个动态库。
    • 静态库是由.a和.frameWork组成。动态库是由 .dylib和.frameWork组成。
    • 自己制作的.frameWork 是静态库,系统使用的.framework是动态库。
    • .a是一个二进制文件,是不能直接使用的。需要添加.h文件才能使用。
    • .a + .h +sourcefile = .framework

    制作流程

    .a制作

    • 创建Cocoa Touch Static Library

    • 命名SDK的名称

    • 删除.m文件

    • 添加SDK的真正功能的类文件

    • 编辑SDK头文件

    • 设置编译所有架构 Build settings->Build Active Architecture Only --> NO

    • 编译前切换成release模式

    • 分别在模拟机和真机上build一次,获得.a文件

    • 将真机获得的.a文件和模拟机获得的.a文件合并成一个新的.a文件

    lipo -create
    模拟器.a文件目录  
    真机.a文件目录
    -output  输出目录/文件
    
    • 将合并好的.a 文件和所有相关.h文件都放在同一个文件夹中,此时该文件夹就是一个可以使用的静态库了

    • 测试,创建一个独立项目,将该文件夹导入项目中使用。

    .framework制作

    • 创建Cocoa Touch framework

    • 添加SDK的真正功能的类文件

    • 编辑SDK头文件

    • 配置header

    • 配置库连接类型

    • 设置编译所有架构 Build settings->Build Active Architecture Only --> NO

    • 编译前切换成release模式

    • 分别在模拟机和真机的状态下build一下得到两个MyFramework.framework文件,每个MyFramework.framework文件里面包含MyFramework文件

    • 合并两个MyFramework文件

    lipo -create
    模拟机的MyFramework.framework下的MyFramework路径
    真机的MyFramework.framework下的MyFramework路径
    -output  输出目录/文件
    
    • 将合并生成的MyFramework 替换掉真机MyFramework.framework下的MyFramework。此时真机下的MyFramework.framework就是制作完成了。
    • 测试,创建一个独立的项目,将MyFramework.framework导入到项目中。添加Header search Path。

  • 相关阅读:
    Spring Boot 的各种start
    Lombok介绍、使用方法和总结
    JS字符串与二进制的相互转化
    java字符串与二进制的相互转化
    DevExpress WPF v18.2新版亮点(六)
    用MyEclipse开发REST Web Service
    .NET界面控件DevExpress发布v18.2.4|附下载
    DevExpress WPF v18.2新版亮点(五)
    「版本升级」MyEclipse CI 2018.12.0正式发布
    MyEclipse使用教程:在Web项目中使用Web片段
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/8080191.html
Copyright © 2020-2023  润新知