1.创建 framework,如下图
2.Built Settings里参数配置:
-
Build Active Architecture Only设置为NO:即打包的.framework支持所有的设备,否则打包时只能用当前版本的模拟器或真机。 -
Dead Code Stripping设置为NO:会对代码中的dead、unreachable的代码过滤,不过不开似乎也没有多大影响。 -
Link With Standard Libraries设置为NO:避免重复链接。 -
Mach-O Type设为Static Library:对于系统的framework是动态库,而用户制作的framework只能是静态库。
3.导入相关功能代码,设置要公开的头文件,并将所有公开的头文件导入到主头文件。
-
PS : 若导入有第三方库,最好自己把第三方类的名称改掉,因为可能跟项目里的第三方库重复,产生错误。
4. 修改Run模式改为Release模式,选择真机和模拟器,通过command+B编译,生成如图文件。
5.通过终端合并上图中真机和模拟器生成的FrameWorkTest文件。
|lipo -create | 真机的FrameWorkTest文件路径 | 模拟机的FrameWorkTest文件路径 | -output | 一个输出路径 |
6. 将新生成的文件替换掉真机的FrameWorkTest文件。
7. 修改最低版本号。
最后需要总结的:
- 制作
framework或者lib的时候,若使用了category,则使用该framework的程序运行时会崩溃,此时需要在该工程中other linker flags添加两个参数-ObjC -all_load。
使用时注意事项:
- 将framework直接拖入项目。
- 修改
Header Search Path为$(SRCROOT)/xxx/xxx.framework/Headers。














网友评论