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
。
参考:
https://www.cnblogs.com/sunjianfei/p/6669988.html