Xcode4.6 自制iOS可用的 Framework
First of all:新建一个空白project. File->New->Project
然后新建两个文件 File->New->File 如图
然后选择targets add Target
注意:iOS工程的选项里面没有Bundel,所以选择Mac里面的
删除Build Phases里面的link库如图(删除Cocoa framework)
接下来修改Build Setting
a.Base SDK选择Latest IOS(IOS 6.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(armv7 armv7s) (不这样编译会报错)
h.工程Info中将Bundle OS Type code的值BNDL改为:FMWK
i.打开Build Phases选项卡,右下角点击Add Build Phase–Add Headers copy,然后界面就会多出来一个Copy Headers的菜单,然后添加源文件。完成后如图所示:(Compile Sources 添加.m文件)
本来我是打算在Xcode5-DP3里做图解的。但这个版本里没有找到Add Build Pase 就用了Xcode4.6
然后打开TestOne.h文件。可以先做一个简单的demo
//
// TestOne.h
// TestFramework
//
// Created by qingyun on 7/17/13.
// Copyright (c) 2013 qingyun. All rights reserved.
// #import <Foundation/Foundation.h> @interface TestOne : NSObject -(void)tprintF; @end


//
// TestOne.m
// TestFramework
//
// Created by qingyun on 7/17/13.
// Copyright (c) 2013 qingyun. All rights reserved.
// #import "TestOne.h" @implementation TestOne -(void)tprintF
{
NSLog(@"hello world!! Helo qingjoin");
} @end

分别修改TestOne.h TestOne.m这两个文件
好了基本上Framework已经完成。接下来就是编译。先在simulator 上编译。第二次在iOS Device编译。
等两次编译都成功后。接下来可以看到这个文件。右击Show in Finder
打开后可以看到刚生成的文件
然后把qingT.framework这整个文件复制。再做一个Demo来测试
新建一个project 。File->New->Project
然后右击Framework 。如图所示。然后添加刚生成的qingT.framework这整个文件。加好之后如图所示
然后在这个demo里做一个简单的测试。如图
如图。我们已经对一些文件进行了封装。这样可以方便成功定制自己想要的一些Framework 这个framework 非静态库。
iOS 静态库也就是常用的.a文件的定制可以参考:http://www.cnblogs.com/qingjoin/archive/2013/01/17/2864672.html
参考文档:http://www.wangdg.com/?p=461
版权所有:@qingjoin
Xcode4.6 自制iOS可用的 Framework的更多相关文章
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- iOS开发-动态和静态FrameWork
开发中我们会使用到第三方的SDK,有的时候也会将整个系统的公用的功能的抽象出来成为FrameWork,我们只需要暴露对外的接口,使用者只需要调用接口,对于内部实现的过程不需要维护,可以以库的形式进行封 ...
- iOS XCode7制作.Framework动态库和.a静态库的总结
一.开发SDK时的支持情况: OC语言制作动态库时,支持iOS8+:OC语言制作静态库,支持iOS7+. Swift语言制作动态库时,支持iOS8+;Swift不支持静态库. 对于SDK来说,支持情况 ...
- iOS,Xcode7 制作Framework,含资源和界面
Xcode7 制作Framework 本文通过Demo方式介绍1)将含bundle和存代码编写界面打包进framework:2)将storyboard +assets.xcassets打包. (一) ...
- iOS开发:JavaScriptCore.framework的简单使用--JS与OC的交互篇
iOS7之后苹果为众猿推出了JavaScriptCore.framework这个框架,这个框架为大家在与JS交互上提供了很大帮助,可以在html界面上调用OC方法并传参,也可以在OC上调用JS方法并传 ...
- iOS Core Telephony Framework
Core Telephony Framework(核心通讯框架) 概述: 这个库的前缀为CT(Core Telephony),主要用来获得用户通讯相关信息,我们可以使用这些信息来定义外部接口以便自己使 ...
- Unity3D研究院之IOS全自动编辑framework、plist、oc代码
Unity打IOS时会先生成一个Xcode工程,如果你需要增加一些第三方的framework那么需要手动一条一条的添加,这太烦了..而且可能你还需要修改Plist文件,甚至还可能要修改unity自动生 ...
- iOS中 MediaPlayer framework实现视频播放 韩俊强的博客
iOS开发中播放音乐可以使用MPMusicPlayerController类来实现,播放视频可以使用MPMoviePlayerController和MPMoviePlayerViewControlle ...
- iOS 开发 ZFUI framework控件,使布局更简单
来自:http://www.jianshu.com/p/bcf86b170d9c 前言 为什么会写这个?因为在iOS开发中,界面的布局一直没有Android布局有那么多的方法和优势,我个人开发都是纯代 ...
随机推荐
- BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱( dp )
dp( l , r ) = sum( l , r ) - min( dp( l + 1 , r ) , dp( l , r - 1 ) ) 被卡空间....我们可以发现 l > r 是无意义的 ...
- XML IList<T> TO DataSet TO DataTable 相互转换
//遍历XML 获得 DataSet //XmlTextReader static void Main(string[] args) { string xmlData = @"D:\stud ...
- Java--对象内存布局
在HotSpot虚拟机中,对象在内存中的存储布局可以分为3块区域:对象头部.实例数据.对齐填充. 一.对象头部Header的布局 Mark Word Class 指针 在32位系统下,上面两部分各占4 ...
- xadmin集成ueditor
from DjangoUeditor.models import UEditorField content = UEditorField(u"内容", imagePath=&quo ...
- 位操作 写读同步(无线) (语音1760 1700) ( 无线24l01)
************************************************************************** * 函数原型: unsigned char ISD ...
- 找球号(一)(hask表)
找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<= ...
- 在cmd窗口中查询android的sqlite3数据库表之步骤
本文主要是写了一个android程序对sqlite3中数据库的employee表的插入.删除的操作,然后在cmd窗口中用sql命令查询employee表的操作过程. 1.第一步:首先把程序写好. 1. ...
- 配置免安装版JAVA1.7的环境变量
我用的是免安装版JAVA1.7,假设想获取JDK能够联系问我要. 1.開始配置环境变量,右击[我的电脑]---[属性]-----[高级]---[环境变量],如图: 2.选择[新建系统变量]--弹出&q ...
- asp.net上传控件使用
protected void Button1_Click(object sender, EventArgs e) { string str = ""; if (FileUpload ...
- uart串口协议
uart串口协议 /* USART Word Length ---------------------------------------------------------*/ US ...