iOS 制作 framework 教程
直接看步骤 废话不多说,哈哈!
1、新建一个静态库工程:
2:取自己喜欢的名字:
3、删除向导所生成工程中的 Target:
3、删除TestFrameWork对应的工程文件夹:
5:删除bulid 关连项
选择左下角Manager Scheme
选中 Scheme,点击左下角的减号删除:
删除完成后,点击 OK 返回。
5、增加一个新目标。点击 “Add Target”
在弹出的对话框中选择 Mac OS X 下的 Bundle:
如上图,给库取一个名字,保持默认的 Framework(CoreFoundation),然后点击 Finish。
6、修改新目标的工程设置。选中 TARGETS 中对应的目标, Build Settings 页:
7.target 上右键get Info 在Build Settings下面设置下面的几项内容
a.Base SDK选择Latest IOS(IOS 5.1)
b.Build Active Architecture Only选择NO
c.Drad Code Stripping设置为NO
d.Mach-O Type 为Relocatable Object File
e.Link With Standard Libraries为NO
f.Wrapper Extension修改为:默认的bundle改成framework
g.在Architectures选项选择Standard(armv6 armv7) (不这样编译会报错)
h.工程Info中将Bundle OS Type code的值BNDL改为:FMWK
在 Deployment 下,将 “Mac OS X Deployment Target”改为”Compiler Default”,
将 “Targeted Device Family”改为需要的,此处改成了”iPhone/iPad”,
同时可以根据需要修改 “iOS Deployment Target”,此处改为了 “iOS 3.0”:
8、修改预编译头:就是注释掉全部
10、向工程中添加一个类:
10、在myTestClass。h添加一个方法testFounction:
11、在myTestClass。m中实现方法testFounction:
12.打开Build Phases选项卡,右下角点击Add Build Phase–Add copy Headers,然后界面就会多出来一个Copy Headers的菜单,然后添加源文件。完成后如图所示:(Compile Sources 添加.m文件)
点击右下角的 “Add copy Headers”:
添加完成后,展开 “Copy Headers”:点击加号:
选中需要暴露的头文件,此处我们选择 “myTestClassA.h”:
点击 Add 按钮完成添加:此时,我们看到导出的文件在 Project 下,这样是不能暴露给别人使用的,将其移动到 Public 下:
12.然后Build & Run ,
里成功很近了 ,哈哈!
13.下面随便把我们在上面生成的framework 导入到其他的工程就可以使用了,哈哈!
找到刚才我们FrameWork 的工程目录的Bulid->Products->Debug-iphonesimuator->TestFrameWork.farmework
14.下在你想用的地方导入头文件
#import <TestFramework/myTestClass.h>
用法如下:
- myTestClass* vc1=[[myTestClass alloc]init];
- [vc1 testFounction];
- [vc1 release];
15.Bulid&Run
但是上面程序,我测试,会出现内存泄露!
iOS 制作 framework 教程的更多相关文章
- iOS,Xcode7 制作Framework,含资源和界面
Xcode7 制作Framework 本文通过Demo方式介绍1)将含bundle和存代码编写界面打包进framework:2)将storyboard +assets.xcassets打包. (一) ...
- Sagit.Framework For IOS 开发框架入门教程4:注册页布局-被消灭的变量
前言: 上篇写完:Sagit.Framework For IOS 开发框架入门教程3:Start引导页-框架布局和隐藏事件的内幕 之后,好久没写文章了,有IT连创业系列.有DotNetCore的一篇文 ...
- IOS7开发~Xcode5制作framework
一.Framework 简介(Introduction to Framework Programming Guide) Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码 ...
- IOS7 ~ Xcode5 制作 framework
一.Framework 简介(Introduction to Framework Programming Guide) Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码 ...
- iOS开发入门教程
iOS开发入门教程 http://my.oschina.net/mailzwj/blog/133273 摘要 iOS开发入门教程,从创建项目到运行项目,包括OC基础,调试,模拟器设置等相关知识. iO ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
blog.csdn.net/totogo2010/article/details/8205810 目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...
- iOS 封装.framework 以及使用
.framework是什么? .framework是什么? 这个问题相信做iOS的都知道答案. 在我们的日常开发中,经常会用到各种已经封装好的库,比如支付宝.微信SDK等等中的库,这些库可以给我们的开 ...
- iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方
https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainb ...
- iOS 开发 Framework
制作Framework 的好处和缺点 好处: 1.如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性: 2.物理上的模块化便于开发过程的管理与测试,尤其是在程 ...
随机推荐
- Tigase XMPP Server在CentOS部署和配置
Tigase XMPP Server在CentOS部署与配置 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 以下讲述Tigase XMPP Server ...
- unity 编辑器和插件生产(四.2)
上次 我们告诉编辑器制作,如何将图像加载到现场,如今 我们要告诉下.怎么样 制造UIButton以及UIimage交换. 阿土. 进入专题. 首先,我们要明白 unity机制.button属性等. 首 ...
- Nyoj Arbitrage(Floyd or spfa or Bellman-Ford)
描述Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a curren ...
- EntityFramework:状态变化与方法的关系
一.约定 OnModelCreated 有一些限制需要注意,例如: 1.表名不支持使用标签进行标注 2.最小长度在 OnModelCreated 中不支持 3.正则表达式在 O ...
- .NET中lock的使用方法及注意事项
lock就是把一段代码定义为临界区,所谓临界区就是同一时刻只能有一个线程来操作临界区的代码,当一个线程位于代码的临界区时,另一个线程不能进入临界区,如果试图进入临界区,则只能一直等待(即被阻止),直到 ...
- Ambari-部署文档
Ambari-server搭建过程 部署环境要求 操作系统:centos 5 或 centos 6 能够使用yum jdk版本号 1.7 官网安装教程 https://cwiki.apache.org ...
- 关于C#操作INI文件的总结
原文:关于C#操作INI文件的总结 INI文件其实是一种具有特定结构的文本文件,它的构成分为三部分,结构如下: [Section1]key 1 = value2key 1 = value2--[S ...
- linux_常用命令_(ls, lsof,nslookup)_查看文件按照时间排序
平时收集些用到的命令 方便使用 1: ls -lrt 按时间排序 展示 2:nslookup 查看dns解析 3:lsof -p 进程号 lsof `which httpd` //那个进程在使用 ...
- Hibernate制图(两)——许多-于─关系映射
上篇学习了Hibernate的基本映射,也就是单表映射,非常easy就能理解,可是对于关系数据库来说,表之间存在关系是比不可少的.关系数据库中存在的关系是通过主外键建立起来的.反应到Hibernate ...
- likely()与unlikely()
he gcc C compiler has a built-in directive that optimizes conditional branches as either very likely ...