zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    自定义分页二
    CheckBox实现跨页面多选
    正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
    DropDownList下拉框多选
    通用查询
    AutoCAD自动加载DLL文件的方法
    软件开发(团队管理)
    正确地做事与做正确的事
    C#.NET实现邮件的发送
    多附件的上传
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/8080191.html
Copyright © 2011-2022 走看看