直接看步骤 废话不多说,哈哈!

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>

用法如下:

  1. myTestClass* vc1=[[myTestClass alloc]init];
  2. [vc1 testFounction];
  3. [vc1 release];

15.Bulid&Run

但是上面程序,我测试,会出现内存泄露!

iOS 制作 framework 教程的更多相关文章

  1. iOS,Xcode7 制作Framework,含资源和界面

    Xcode7 制作Framework  本文通过Demo方式介绍1)将含bundle和存代码编写界面打包进framework:2)将storyboard +assets.xcassets打包. (一) ...

  2. Sagit.Framework For IOS 开发框架入门教程4:注册页布局-被消灭的变量

    前言: 上篇写完:Sagit.Framework For IOS 开发框架入门教程3:Start引导页-框架布局和隐藏事件的内幕 之后,好久没写文章了,有IT连创业系列.有DotNetCore的一篇文 ...

  3. IOS7开发~Xcode5制作framework

    一.Framework 简介(Introduction to Framework Programming Guide) Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码 ...

  4. IOS7 ~ Xcode5 制作 framework

    一.Framework 简介(Introduction to Framework Programming Guide) Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码 ...

  5. iOS开发入门教程

    iOS开发入门教程 http://my.oschina.net/mailzwj/blog/133273 摘要 iOS开发入门教程,从创建项目到运行项目,包括OC基础,调试,模拟器设置等相关知识. iO ...

  6. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

  7. iOS 封装.framework 以及使用

    .framework是什么? .framework是什么? 这个问题相信做iOS的都知道答案. 在我们的日常开发中,经常会用到各种已经封装好的库,比如支付宝.微信SDK等等中的库,这些库可以给我们的开 ...

  8. iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方

    https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainb ...

  9. iOS 开发 Framework

    制作Framework 的好处和缺点 好处:       1.如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性:       2.物理上的模块化便于开发过程的管理与测试,尤其是在程 ...

随机推荐

  1. Linux在iptables教程基本应用防火墙

    iptables它是Linux防火墙软件经常使用,下面说一下iptables设备.删除iptables规则.iptables只要打开指定的port.iptables屏蔽指定ip.ip科和解锁.删除添加 ...

  2. Nyoj 吝啬的国度(图论&&双DFS)

    描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你 ...

  3. DynamicReports 导出Excel 例子

    import java.awt.Color; import java.io.FileOutputStream; import java.util.ArrayList; import java.util ...

  4. sql server 更新表,每天的数据分固定批次设置批次号sql

    按表中的字段 UpdateTime 按每天进行编号,每天的编号都从1开始编号,并附带表的主键 cid,把数据存入临时表中 WITH temp AS (SELECT cid,updatetime, RO ...

  5. 使用myeclipse将Javaj项目标ar套餐邂逅classnotfound解决问题的方法

    做一件事的今天,该Java项目打包成jar文件.折腾2小时,最终运行jar文件报告classnotfound异常,我觉得程序写入依赖jar包不玩成,但是,我手动添加.或不.网上找了很多办法.或不.后. ...

  6. java学习笔记1——window7下JDK环境变量配置图解

    1. 首先下载Java安装工具包   http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  7. J2EE之验证码实现

    package cn.itcast.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; i ...

  8. 图数据库 Titan 高速入门

    尤其在互联网世界,图计算越来越受到人们的关注,而图计算相关的软件也越来越丰富.本文将高速展示 Titan这个open source 的图数据库. 注:本文的操作主要基于Titan 官方的两篇文档: - ...

  9. 浅谈移动Web开发(上):深入概念

    PPI 什么是PPI PPI的复杂之处在于如果他所属的上下文环境不同,意义也会完全不一样. 当我们在谈论显示设备的PPI时,它代指的屏幕的像素密度:当我们在谈论和图片相关时,我们谈论的是打印时的分辨率 ...

  10. 客户端javascript

    <script> function moveon(){ var answer=confirm("hello,good morning!");//通过弹出对话框询问用户 ...