1、创建App(WZMTestApp),如图:
![](https://img.haomeiwen.com/i3982705/d1fe3e2bdaf7f5e1.png)
2、创建framework(WZMTestFramework),如图:
![](https://img.haomeiwen.com/i3982705/4f507cf46ba661fc.png)
3、创建.xcworkspace文件,名字与App相同,如图:
![](https://img.haomeiwen.com/i3982705/a60df7fd59fc4f66.png)
4、将framework项目和.xcworkspace文件放入WZMTestApp文件夹内,如图:
![](https://img.haomeiwen.com/i3982705/5c984ed426894394.png)
5、双击打开WZMTestApp.xcworkspace文件,将两个工程文件(. xcodeproj)拖入,如图:
![](https://img.haomeiwen.com/i3982705/e000d7d7e918d355.png)
6、配置framework,如图:
![](https://img.haomeiwen.com/i3982705/285d8bb704021b57.png)
![](https://img.haomeiwen.com/i3982705/98c5fb786362d5c0.png)
7、创建类(WZMTestClass),并实现一些函数,如图:
![](https://img.haomeiwen.com/i3982705/f31dda10c678c157.png)
8、公布需要对外暴露的头文件,将WZMTestClass.h拖入Public内,如图:
![](https://img.haomeiwen.com/i3982705/6f095086d52c6721.png)
9、编译生成framework,如图即为支持真机的framework,选中模拟器即生成支持模拟器的framework
![](https://img.haomeiwen.com/i3982705/2a06cbcc5eeb536e.png)
到此,framework的生成全部完成,若需对framework进行动态调试,还需在工程中关联framework。
10、工程配置,与framework配置相同,如图:
![](https://img.haomeiwen.com/i3982705/4fe9ab8c8aad061c.png)
11、关联framework,如图:
![](https://img.haomeiwen.com/i3982705/d682ca1f76d8862d.png)
![](https://img.haomeiwen.com/i3982705/02b3550e06d2cc4a.png)
12、调用framework函数进行测试,如图:
![](https://img.haomeiwen.com/i3982705/2b4246578aac880a.png)
到此,framework的关联全部完成,运行WZMTestApp项目,即可对framework进行断点调试。
13、如下图中的framework即为生成的framework,可以导入到其他项目中直接使用:
![](https://img.haomeiwen.com/i3982705/4e4c719ea1ba126c.png)
14、有同学问到了如何在.framework中加载图片等资源,需要把资源文件放入进.bundle文件夹内,在.framework中使用图片时不能用[UIImage imageNamed:"test.png"]
这种形式,而是如下代码:
NSString *emoticon = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"bundle"];
NSString *path = [emoticon stringByAppendingPathComponent:@"test.png"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
使用时,把.framework和.bundle同时拖入其他项目中即可
网友评论