iOS 开发 旧版 framework
0. 参考
http://www.cocoachina.com/ios/20150127/11022.html
http://www.cnblogs.com/gcb999/p/3296414.html
1.概念
Framework 是资源的集合,将静态库和其头文件包含到一个结构中,供Xcode引入使用。
1.1. os x 与 ios 区别
os x 可以创建动态连接的Framework。
ios 只能是使用静态连接的Framework。
1.2. 本质
Framework 是静态库的 “一站式采购点”,是从静态库演化而来。
2.步骤
2.1. 创建一个 Cocoa Touch Static Library 工程
一个静态库工程由头文件和实现文件组成,应该仅需要导入一个头文件,就可以访问该库的所有公开类。
2.2. 设置工程
2.2.1. 删除自动生成的实现文件
2.2.2. 修改生成的头文件
替换头文件中的内容为 #import <UIKit/UIKit.h>
2.2.3.. 添加UIKit.framework
工程导航栏>TARGETS>Build Phases>Link Binary With Libraries>+>UIKit.framework
2.2.4. 添加phase
在2.4 所在的目录执行:Editor>Add Build Phases>Add Headers Build Phase。
如果该项不能选择,则点击下方的Build Phases的区域获取焦点。
2.2.5. 拖动Header
把2.3的头文件拖动到2.5中的Public中,这样,别人就可以获取到该头文件。
2.3. 添加功能
2.3.1. 拖到工程里面
把要添加的功能文件夹拖动到工程里面,勾选Copy Items 和 Add to targets。
2.3.2. 拖动需要共享的文件
注意 2.2.5里面,Public和private都是可以暴露出来的,不要被误导,而Project是私有的。所以,其实只需要Public和Project就好。需要共享的文件,执行操作同2.2.5就好。
2.3.3. 添加功能头文件到主头文件
例如:#import<controls/controls.h>,是用尖括号的。
2.3.4. 配置Build Settings
2.3.4.1. 提供目录名
标识拷贝的公共头文件位置,确保使用静态库时可以定位到相关头文件。
项目导航栏>Targets>Build Setting,搜索 public header > 双击Public Headers Folder Path> 输入include/$(PROJECT_NAME)
2.3.4.2. 去掉Debug等选项
接2.3.4.1,搜索并修改
- Dead Code Stripping为NO
- Strip Debug Symbol During Copy为NO
- Strip Style 为 Non-Global Symbols
2.3.5. 编译
选择目标为 Generic iOS Device ,编译,这时,Product下的.a文件已经从红色变为黑色。可以右键>Show in Finder查看。
2.4 创建Framework
Framework包含lib,但是又有自己的特殊结构:

通过添加脚本来完成这个操作
x. 创建一个依赖开发(Dependent Development)工程
x.1. 创建一个Single View Application
x.2. 引入静态库工程
关闭静态库工程,将 静态库.xcodeproj从Finder中拖入到Xcode中项目同名分组里。这样做方便调试和修改。
x.3. 添加静态库
- 项目导航栏>项目工程>Targets>项目>Build Phases>Target Dependencies>+>选择静态库,作为项目依赖库
- 同样,Build Phases>Link Binary With Liraries>+>选择静态库,作为链接库
iOS 开发 旧版 framework的更多相关文章
- iOS开发之——制作framework静态库教程
环境: 硬件:macbook air 系统:OSX EI Capitan 版本:10.11.3 xcode : Version 7.2.1 (7C1002) 最近在做ios的静态库(据说framewo ...
- iOS开发之通过Framework建立项目依赖
https://www.jianshu.com/p/d146db167bf3 项目开发时经常会遇到个别模块想打包成framework的情况,传统的打包方式太繁琐,反复测试时很麻烦,不如一个项目管理来得 ...
- iOS开发之常用第三方框架(下载地址,使用方法,总结)
iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...
- iOS开发——创建你自己的Framework
如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...
- iOS开发之静态库(四)—— 静态框架framework制作
前面介绍过,虽然苹果公司禁止在iOS开发中使用动态库,而且也从XCode中移除了创建静态框架的功能,但我们还是可以通过对XCode进行小小的改动来创建静态框架. 编译环境:Macbook Air + ...
- 精通iOS开发(第5版)
<精通iOS开发(第5版)> 基本信息 原书名:Beginning ios 6 development:exploring the ios sdk 作者: (美)David Mark ...
- iOS开发中静态库之".framework静态库"的制作及使用篇
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...
- Arcgis API For IOS扩展AGSDynamicLayer新旧版API对比
AGSDynamicLayer(ForSubclassEyesOnly) Category Reference Description This category organizes the meth ...
- iOS开发UI篇—模仿ipad版QQ空间登录界面
iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...
随机推荐
- navicat 导出mysql表结构
选中需要导出表结构的数据库,右键,在显示的菜单中选择“数据传输”这一项 ,在弹出窗口中“数据传输”单击选择“高级”一项,在“高级”中把“记录选项”中的勾去掉,在做一些设置,最后导出表数据就不会导出记录 ...
- 这丫头也的还真清楚,但是跑不通呢,换3.0.3的mybatis也不行
http://java.dzone.com/articles/ibatis-mybatis-handling-joins http://mybatis.github.io/spring/mappers ...
- 【dp】 poj 1953
用n个数字0或者1组成一个排列,要求每两个1不相邻,问有多少种排法 dp[n][0]记录n个连续数,结尾为0的不同排列数dp[n][1]记录第n个连续数,结尾为1的不同排列数 DP公式: dp[i][ ...
- Popular Products
Popular Products 描述 Given N lists of customer purchase, your task is to find the products that appea ...
- ARM指令集学习总结-转载
ARM指令集比较简单,本文介绍ARM指令集中需要注意和不易理解的地方. 一.ARM指令集是32位的,程序的启动都是从ARM指令集开始,包括所有异常中断都是自动转化为ARM状态,并且所有的指 ...
- hrbustoj 2283 heap解题报告
这是我们校赛的一道题,给一个字符串,判断这是字符串描绘的是不是一个堆,并不难,只是一个简单的模拟,但是也稍微有点麻烦,最起码我的方法代码量比较大,主要用栈做一个父亲与儿子的位置匹配,匹配的方法应该有很 ...
- Hadoop webHDFS设置和使用说明
1.配置 namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS.LISTFILESTATUS ...
- Java运行内存结构分析
- PAT (Advanced Level) 1015. Reversible Primes (20)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- The 2014 ACM-ICPC Asia Regional Anshan
继续复盘下一场Regional! [A]-_-/// [B]模拟(之前每次遇到模拟.暴搜都直接跳了,题目太长也是一个原因...下次是在不行可以尝试一下) [C]数论 互质.容斥? [D]数学推导(方差 ...