1.新建Framework项目
1.png2.删除原有的.h文件,创建与工程同名的类
2.png3.png
在新建类.h中添加接口,.m中添加实现代码
4.png
5.png
3.Xcode的参数设置
- "Architectures" 添加 "armv7s"
- "Build Active Architecture Only" 设置为 "NO"
- "Dead Code Stripping" 设置为 "NO"
- "Link With Standard Libraries" 设置为 "NO"
- "Mach-O Type" 设置为 "Static Library"
-
"IOS Deployment Target" 设置为 "IOS 7.0" ,表示支持IOS7.0以上系统版本的编译
6.png
7.png
8 .png
4.为Framework添加文件
- "Compile Sources" 添加封装进Framework的文件,即隐藏
-
"Headers->Public" 添加暴露给用户查看的头文件
9 .png
5.编译生成Framework文件
- 分别选择真机和Iphone6模拟器进行编译
- 首先找到真机编译成功生成的framework,Show In Finder
-
然后找到Iphone6模拟器编译成功生成的framework(在真机目录中command+(向上剪头键)返回上一层文件夹路径)
10.png
11 .png
6.�合成通用版的framework文件
-
需要合成的文件是FrameworkTest.framework包中的FrameworkTest文件
12 .png - 使用终端进行合成操作
lipo -create FramewrokTest.framework/FrameworkTest(真机framework路径) FramewrokTest.framework/FrameworkTest(Iphone6模拟器framework路径) -output 保存路径/FrameworkTest
13 .png -
合成的文件如下图:
14 .png -
将合成的FrameworkTest文件替换掉真机或者模拟器路径中FrameworkTest.framework包中的FrameworkTest文件
15 .png
网友评论
framework不支持8.0以下固件,compile会报warning,而running的时候必须crash。
"Mach-O Type" 设置为 "Static Library"另外怎么选择 dynamic lib 还是static lib?