iOS framework 开发过程

生成framework步骤

1.首先新建一个项目,选择Cocoa touch Framework

WeChatb17fccf4b4ab934c9b24455a3f213b1a.png

2.然后将要封装成framework的代码拖入工程

WeChat1003127fc30c8cb4cab3c12cbc882e37.png

3.选择工程文件>target第一项>Build Setting>

最后将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库

4.然后将需要公开的头文件从Project中拖入Public,至于是否需要将私有的头文件拖入Private,我觉得直接放在Project中即可,若是Private中有头文件,打包以后的framework中会多出一个Private的文件夹包含着放入Private的头文件,不过我觉得如果是私有最好还是不要让别人看到。

WeChatcbe29344fc4d3c47edc3a6a22217342b.png

5.Build Settings ->Build Active Architecture Only设置为NO. (图中的选项如果设为YES,会导致其编译时只生成当前机器的框架;将其设置为NO后,发现用模拟器编译后生成的framework同时包含x86_64和i386架构。)

WeChat5db7759fec8be4d2ae63a86a12e17cc5.png

6.下面就开始编译了,先选择Generic iOS Device,按下Command+B:Build一下的到的是支持真机的framework,然后随意选择一个模拟器再次Build一下得到支持模拟器的framework

WeChat9ebb0d7dda499f68bd51dad08331bfab.png

7.然后用命令行将下面两个文件进行合成(也可以单独提供,不合并,合并了会导致包很大,各有优缺点吧,如果framework包不太大建议合并,否则还是提供两个)

如果架构有冲突。可以移除模拟器的一个,例如:lipo NetworkTest -remove arm64 -output NetworkTest


WeChatd4501c65758cb7a488db8b81342ad5c4.png

8. 将这做好的framework直接拖入要使用的工程中,注意将Copy items if needed打勾

9.调用该framework的app需要在 Build Settings ->Other Linker Flags 设置为-Objc(当framework中有使用了分类文件,就必须设置,否则无法加载;未使用可以不设置)在开发中,导入一些静态库的时候经常会要求我们在Build Settings->Other Linker Flags设置-ObjC

10. 如果framework 引入工程报警告,Missing submodule 'NetworkTest' 警告,则NetworkTest.h 文件中import 那些public 的文件

WeChat9c10ab68e8b9395d1dcf3c1c3c9ba731.png

你可能感兴趣的:(iOS framework 开发过程)