静态库

1.什么是库?

库是程序代码的集合,是共享程序代码的一种方式

2.根据源代码的公开情况,库可以分为2种类型

开源库

  • 公开源代码,能看到具体实现
  • 比如SDWebImage、AFNetworking

闭源库

  • 不公开源代码,是经过编译后的二进制文件,看不到具体实现
  • 主要分为:静态库、动态库

3.静态库和动态库的存在形式

①静态库:.a 和 .framework

②动态库:.dylib 和 .framework

静态库和动态库在使用上的区别

  • 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝(左图所示)
  • 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存(右图所示)
需要注意的是:项目中如果使用了自制的动态库,不能被上传到AppStore

一,使用创建静态库


然后写静态库的核心代码,

分别选择真机和模拟器,编译就会生成静态库

用不同的模拟器生成的静态库有不同的支持手机架构、

  • 普及CPU架构
每一个手机都是属于自己的CPU,不同的CPU采用的是不同的CPU架构(指令集)任何一个静态库都有它支持的CPU架构,如果是跑在不支持的CPU架构上面,那么就报错模拟器iPad2/iPhone4s/iPhone5 : i386iPadair/iPhone5s-->iPhone6plus : x86_64真机iPhone3gs-->iPhone4s : armv7iPhone5/iPhone5c : armv7siPhone5s-->iPhone6Plus: arm64----- 命令行 -- 进入文件目录 ------查看静态库支持的架构:lipo -info 静态库
另外也可以这样设置

生成的真机使用静态库和模拟器静态库,可以合并

  • 合并静态库
  • lipo -create 静态库1 静态库2 -output 新的静态库的名称

转载于:https://www.cnblogs.com/ShaoYinling/p/4779788.html

iOS----创建静态库相关推荐

  1. IOS创建静态库Cocoa Touch Static Library

    转自:http://blog.csdn.net/ahopedog/article/details/7873385 为了系统的安全,ios只允许使用静态库(静态连编到程序中),不能用动态库(程序运行时才 ...

  2. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件. 2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级. 3.你想将库共享给其他人,但不 ...

  3. Xcode7中创建静态库

    一.静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存在,链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝:动态库以 ...

  4. iOS架构-静态库.framework脚本化打包补充(5)

    静态库.framework脚本化打包打包已经在iOS架构-静态库.framework手动打包及脚本化打包(5)中讲过.这里补充是通过Xcode 配置Aggregate自动执行脚本打包Framework ...

  5. iOS架构-静态库.a之依赖第三方静态库.a的制作(8)

    上一篇讲的是静态库.framework 依赖第三方库,是通过Cocoapod 提供的第三方库.而有时我们会依赖第三方.a 或者.framework 的.那么怎么样来制作依赖第三方.a 或者.frame ...

  6. iOS架构-静态库.framework手动打包及脚本化打包(5)

    引用一张博客的图片来理解下基本知识(http://www.cnblogs.com/oc-bowen/p/7478461.html) 我们可以看出.a的封装和.framework的封装差不多,也有模拟器 ...

  7. iOS架构-静态库.a 和.framework的区别(0)

    原文网址:https://my.oschina.net/kaqijiang/blog/649632 一.什么是库? 库是共享程序代码的方式. 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存 ...

  8. iOS架构-静态库.a打包之资源文件打包成bundle(4)

    iOS架构-静态库.a的打包及使用(一) iOS架构-静态库.a的脚本化打包及使用(二) 资源文件主要包括:xib.图片以及其他文件资源(json.string等).这里主要介绍 xib.图片.其他的 ...

  9. iOS架构-静态库.a的脚本化打包及使用(3)

    接着iOS架构-静态库.a的打包及使用(一)继续研究静态库.a的打包 需求背景: 手动编译静态库工程是会生成模拟器和真机两个不同的.a包 终端合成 $:lipo -create 真机.a路径 模拟器. ...

  10. iOS架构-静态库.framework之依赖第三方库(7)

    需求分析:     把自己的能力封装成静态库提供给客户使用,但是有些工作市场上已经有很好的公开的代码,或者成本很低的解决方案,我们就可以使用别人公开的.或者低成本采购的技术来为我们服务.制作静态库也是 ...

最新文章

  1. 我与 美国作家 21天精通C++ 作者 Rao的对话:
  2. 关于椭圆的积分变量替换
  3. 实验15:通过注解分别创建Dao、Service、Controller★
  4. Android:安卓APP启动过程简介
  5. 蒙特利尔大学发布2021年最新自监督小样本检测综述
  6. php中的div是什么意思,div是什么意思?div标签怎么用
  7. 使用微软的TFS云服务来管理小型项目
  8. Docker 图形界面管理工具 -- Portainer
  9. 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据
  10. spark学习-34-Spark的BroadcastManager广播管理器
  11. 基于Ubuntu的ESP32平台搭建
  12. [史]世界史上的6大古帝国
  13. 从 0 开始学支付系统搭建——解析「核算对账核心」
  14. 复制计算机软件,一键复制粘贴工具
  15. 一段很现实的话适合发朋友圈文案
  16. 云班课计算机题答案,云班课答案获取
  17. 【CSS】CSS选择器优先级及!important属性
  18. 无线通信又闯祸 波音飞机系统竟被黑
  19. 基于 RISC-V SoC 的可配置 FFT 系统设计(2)RISC-V 的起源及其发展历程
  20. 【JS篇】禁止手机默认键盘弹出

热门文章

  1. EverWeb for Mac(网页设计软件)v3.5.1中文版
  2. Unity WebGL与IIS小坑
  3. Maven 安装 on centos7
  4. common,Google Guava,Guice
  5. 为什么机器学习行业的发展离不开 “开源”
  6. AC日记——图灵机游戏 codevs 2292
  7. PATH与CLASSPATH的区别
  8. 一条ssh命令实现端口转发,实现跨机器直接访问
  9. PCAP文件格式分析(做抓包软件之必备)
  10. GitHub新神器,宇宙第一编辑器--VS Code!危