- 新建一个工程,选择framework & library - Cocoa Touch Static Library,命名为TestKit。
- 删除不必要的文件。TestKitTests 和TestKit target。
- 新建一个Bundle 。new-file-target;选择OS X目录下FrameWork&Library中的Bundle,取名为TestiOSKit。
- 删除TestiOSKit中TestiOSKit-Prefix.pch中的#import<Cocoa/Cocoa.h>。
- 修改target设置
Build Settings选项卡:Base SDK选择Latest iOS(iOS 7.1)
Build ActiveArchitecture Only选择NO
Dead Code Stripping选择NO
Mach-O Type选择Relocatable Object File
Link With Standard Libraries选择NO
Wrapper Extension修改为framework
Info选项卡:
Bundle OS Type code 修改为FMWK
Build Phases选项卡:
首先选择Editor-Add Build Phase-Add Copy Haeders Build Phase,在Build Phases下会多出一行Copy Headers;
点击右下角的Add Build Phases,选择AddCopy Headers. 添加头文件和源文件。
删除系统的Frameworks。(Remove References)
- 在TestKit.h和TestMarkKit.m里面写入你的函数声明和实现
- 选择Run Scheme
- 查看framework build路径
点击Xcode右上角Organizer,选择Projects选项卡如图,点击箭头可以进入bulid路径。
或者选择iOS Device运行一下,然后在工程的Products-TestiOSKit.framework右键,show in finder。文件夹下en.lproj和Info.plist都可以直接删除。
- 使用framework
只需要在新的工程导入并使用就行啦。
-
但是我们会遇到一个问题,就是这个framework的包分两个,一个是模拟器,一个是真机,所以我们要把它合并成一个通用的包。
在finder下是这样的:
一个是真机,一个是模拟器,下面开始合并。
1.先把其中一个framework包放到桌面。
2.打开终端运行
lipo -create
/Users/Jerry/Library/Developer/Xcode/DerivedData/TestKit-dmdcaxednjyebxgulialinjfjzho/Build/Products/Debug-iphoneos/TestiOSKit.framework/TestiOSKit/Users/Jerry/Library/Developer/Xcode/DerivedData/TestKit-dmdcaxednjyebxgulialinjfjzho/Build/Products/Debug-iphonesimulator/TestiOSKit.framework/TestiOSKit-output
/Users/Jerry/Desktop/TestiOSKit说明一下这段代码,红色为固有字段,黑色部分均为路径,前两个是模拟器路径和真机的路径,后面的为输出路径。
3.把输出的文件TestiOSKit替换第一步放在桌面上的framework里的TestiOSKit,然后这个framework就是通用的了。
此方法同样适用.a文件的合成。
- 我把常用的宏定义和类别做成的framework地址:https://code.csdn.net/yinxianwei88/utilitytools
- 本贴参考:
Xcode5.1制作formework