iOS开发静态库

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

  • .a 和 .framework(静态)有什么区别
    .a是一个纯二进制文件,.framework中除了有二进制文件外还有资源文件
    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用
    .a +.h + sourceFile = .framework

  • 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝

  • 动态库:链接时不复制,程序运行时由系统动态加载到内存供程序调用,系统只加载一次,多个程序共用,节省内存(项目中如果含有个人创建的动态库,则会被拒)

  • 静态库文件的版本

  • 真机【Debug】版本 和 【Release】版本

  • 模拟器【Debug】版本 和 【Release】版本

  • Debug版本
    含完整的符号信息,以方便调试,不会对代码进行优化

  • Release版本
    不会包含完整的符号信息,它的执行代码是进行过优化的,它的大小比Debug版本小,在执行速度方面,Release版本更快(一般采用 Release版本)

  • 制作静态库 - .a & Debug版

1.新建静态库 并且 命名
Snip20161012_3.png
2.将打包为静态库的代码放入的.m文件中
Snip20161012_5.png
在.h文件中暴露接口给外界,并将.h文件添加在copy file中
Snip20161012_8.png

在Command + b编译即可


Snip20161012_9.png
  • 注意:

  • 静态库有 模拟器 和 真机 版本,分别选择真机和模拟器编译后即会有这两种静态库

  • Build Active Architecture Only 是控制编译CPU架构的,我们需要在Debug中将其打开,YES表示只编译选中模拟器对应的版本,NO则是表示编译所有版本。

  • 终端查看静态库支持的CPU架构: lipo -info xxx.a

  • 当静态库需要同时支持真机和模拟器,可以对静态库进行合并, 终端中使用以下命令:
    lipo -create Debug-iphoneos/静态库名称.a Debug-iphonesimulator/静态库名称.a -output 合并后的名称.a

补充:
  • 把资源打成静态库时,若里面包含category文件,出现错误(selector not recognized)运行时找不到该方法错误。需要在 build setting 的 other linker flag 标示符里面添加 -ObjC
  • 静态的暴露的.h 文件多时,可直接在静态库的内部创建一个.h文件,把所有要暴露的.h文件放在这个.h中,最后把这个.h 文件暴露出来即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • 简述 为了满足既供用户使用又维持代码保密性的需求,这时我们就有必要创建 库文件。苹果在这个方面提出了静态库和动态库...
    寒桥阅读 986评论 0 3
  • 如果你想偷懒,务必要学会静态库的制作,一定要有自己的一套静态库。优点:易维护、整洁性、封装。 一、静态库和动态库的...
    黄成瑞阅读 334评论 0 0
  • 一、静态库简介 1.1、库:是程序代码的集合,是共享程序代码的一种方式。 1.2、根据源代码的公开情况,库可以分为...
    IIronMan阅读 5,567评论 18 29
  • (1)静态库和动态库的存在形式 静态库:.a和.framework 动态库: .dylib 和 .framewor...
    jason_Yun阅读 465评论 0 0
  • 前言 1.静态库和动态库有什么异同? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。利用静态...
    Ly梦k阅读 8,548评论 3 18