iOS: 创建静态库,实现自己的API私有使用
一、介绍
在开发中经常使用到第三方的静态框架,格式基本上就是.framework和.a格式的。使用时,会发现我们只能使用无法修改,这就是静态框架的一个好处,私有性。内部实现的代码只有公开者本人知晓,对外界是隔离的,从劳动成果上讲,这也是对作者本人或者公司的一个代码保护。那么,我们如何创建属于自己的静态库呢,下面我就简单地将步骤再次描述一下,在我之前的博客中有过详细的介绍,可以去瞅瞅:https://www.cnblogs.com/XYQ-208910/p/5157673.html。
二、比较
注意:
(1)开发者的都是静态包: .framework 、.a
(2)苹果官方都是动态包: .framework 、.dylib
(3)开发者创建的动态包.dylib是不允许被上架的
作用:
(1)方便共享代码,便于合理使用
(2)实现程序模块化,对业务解耦
(3)开发sdk,保护具体实现代码
区别:
(1).a是一个纯二进制文件,不能直接使用,至少需要配合.h文件一起使用
(2).framework除了包含二进制文件,还可以包含资源文件。
(3).framework = .a + .h + sourceFile
(4)建议使用.framework
三、步骤
3-1:创建.framework步骤
(1)创建.framework工程项目

(2)配置buildSetting属性字段 (有的配置会增加包体积,有的会减少包体积)


(3)拖入需要的类文件和资源包 (此处我没有引入资源包,可以自己创建并引入一个.bundle资源包)

(4)在BuildPhases中公开.h文件

(5)在静态包中引入引用的.h文件

(6)使用模拟器和真机分别在debug和release模式下编译

(7)show Finder静态包,查找编译成功的二进制文件

(8)使用lipo -create -output 命令行合并二进制文件

(9)选取模拟器和真机的任意一个静态包,使用合并的二进制文件替换选取的静态包的二进制文件

(10)将拷贝后的静态包拖入到测试项目中测试

3-2:创建.a步骤
(1)创建.a工程项目

(2)配置buildSetting属性字段,同上面创建.framework步骤2
(3)拖入需要的类文件和资源包 (此处我没有引入资源包,可以自己创建并引入一个.bundle资源包)

(4)在BuildPhases中新建New Headers并公开.h文件

(5)使用模拟器和真机分别在debug和release模式下编译,同上面创建.framework步骤6
(6)show Finder静态包,查找编译成功的二进制文件

(7)使用lipo -create -output命令行合并二进制文件生成一个新的.a包

(8)将这个新的.a静态包拷贝出来,同时将项目中的所有暴露的.h文件拷贝出来(如果有资源文件也要拷贝),放到一个文件夹下。此时,将该文件夹拖入到测试项目中测试

iOS: 创建静态库,实现自己的API私有使用的更多相关文章
- iOS 创建静态库文件时去掉当中的Symbols
在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...
- 在iOS中创建静态库
如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315). =========================================== ...
- iOS xcode创建静态库封装自己的SDK及使用
https://www.cnblogs.com/JustForHappy/p/5773039.html 一,静态库和动态库的区别在这里就不说了,个人感觉如果是自己封装提供别人下载的话应该是静态库比较方 ...
- iOS:创建静态库及其使用
本篇来自转载,原创链接为:http://my.oschina.net/leejan97/blog/284193 摘要: 静态库文件可以有效的将功能封装和细节隐藏 ios 静态库 static lib ...
- ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)
创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让 ...
- iOS 元件组件-创建静态库static library
概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有mai ...
- iOS framework静态库中使用xib和图片资源详解
一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解 iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在 ...
- Xcode 创建静态库和动态库
1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件 ...
- xcode6制作IOS .a静态库小记
xcode6制作IOS .a静态库小记 创建iOS静态库 简单写个打印的代码 编码完成之后,直接Run就能成功生成.a文件了,选择 xCode->Window->Organizer-> ...
随机推荐
- AlertDialog创建对话框的测试
AlertDialog的功能是非常强大的,它可以创建各种对话框,它的结构分为:图标区.标题区.内容区.按钮区共四个区域.以这样的思路区创建AlertDialog是非常简单的. 创建AlertDialo ...
- 011.Kubernetes二进制部署kube-scheduler
一 部署高可用kube-scheduler 1.1 高可用kube-scheduler介绍 本实验部署一个三实例 kube-scheduler 的集群,启动后将通过竞争选举机制产生一个 leader ...
- mysql数据库基础SQL语句总结篇
常用的sql增删改查语句 创建数据库:create database db_name character set utf8;删除数据库:drop database db_name;切换数据库:use ...
- 日记o3o
12.17 段考超级烂,连sts都没考过,但是今晚来机房,nj发邮件的时候也给我发了,看来是可以继续学竞赛啦,很快心,也挺不开心的,毕竟以后想要跟上文化课就要很努力了,有能力但是得去花时间啊,寒假又要 ...
- 05-文档编辑与yum命令
一.Linux vi/vim vi是所有的Unix系统都会有,但是目前我们使用最多的是vim编辑器.vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性. vim是从vi发展出来的一个文本编辑 ...
- centos7编译安装Zabbix-4.2.4及设置邮件告警教程(超详细每步都有截图)
Zabbix-4.2.4安装及配置 此安装基于centos7的LNMP环境下,如未安装LNMP还可参考本人其他随笔 第一步:上传下载 1.前往https://www.zabbix.com/downlo ...
- jQuery 源码分析(二十) DOM操作模块 插入元素 详解
jQuery的DOM操作模块封装了DOM模型的insertBefore().appendChild().removeChild().cloneNode().replaceChild()等原生方法.分为 ...
- CSS权重的进制问题
这是复习篇的第一个知识点,(CSS权重进制在IE6为256,后来扩大到了65536.而现代浏览器则采用更大的数量)在说这个知识点之前我们先来看一个例子 <!DOCTYPE html> &l ...
- OpenWrite插件上架Google商店,插件安装更加容易!用户安全更有保障!
随着越来越多用户加入OpenWrite写作与快速发布文章到各大技术社区,不少非程序员童鞋经常会卡在插件安装这一步. 这是因为之前我们没有把插件上架到Google商店,所以需要用比较硬核的方式来安装. ...
- Xcode 中配置 clang-format 格式化 C++ 代码
Xcode 自带的代码格式化功能(control + I)很有限,其 "格式化" 仅限于设置缩进,代码里面的格式是不会处理的.所以需要借助额外的工具来完成代码的美化. clang- ...