26. XCode 8 制作framework

1. 先创建一个项目,选择Cocoa touch Framework,点击下一步

26. XCode 8 制作framework_第1张图片
20161110225335348.png

2. 把自带的.h文件删除,再将要打包成的.framework源代码拖入项目中

3. 项目设置,选择工程->targe->build setting,在搜索框中搜索linking,进行如下设置

26. XCode 8 制作framework_第2张图片
屏幕快照 2017-07-20 下午3.56.33.png

4. 把要公开的头文件已到Public中去,在使用.framework时只能调用公开.h文件中的声明

26. XCode 8 制作framework_第3张图片
屏幕快照 2017-07-20 下午4.06.08.png

5. 开始编译,选择Generic iOS Device 或者 真机,编译一下,再选择模拟器环境编译一下

26. XCode 8 制作framework_第4张图片
屏幕快照 2017-07-20 下午4.09.17.png

6. 上面的操作会出现两个版本的.framework,点击Products中的framework,选择右键在文件夹中查看。

26. XCode 8 制作framework_第5张图片
屏幕快照 2017-07-20 下午4.15.34.png

7. 真机版本适用于真机调试开发,模拟器版本适用于模拟器调试开发,将两个版本中的 CWen 文件通过终端合并成通用的,终端指令:lipo -create +上面两个文件的路径 +-output+ 合成后文件的输出路径;

26. XCode 8 制作framework_第6张图片
屏幕快照 2017-07-20 下午4.28.05.png

8. 将合并生产的MyFramework文件替换真机生产的MyFramework.framework中的MyFramework文件

9. 创建一个新的项目,将替换后的MyFramework.framework引入到项目中

10. 接着在工程的search path中加上此framework的Headers的路径

26. XCode 8 制作framework_第7张图片
屏幕快照 2017-07-20 下午4.33.08.png

11. 按下Command + R进行编译,没有错误的话在开发中引入.framework中的头文件就可以使用了,下面是我在集成框架遇到的错误,这种情况是编译没有错误,运行的时候就会报这样的错误,也就是说在链接的时候发生了错误。

26. XCode 8 制作framework_第8张图片
20161110225552695.png

12. 解决方法:在tagert中的Other Linker Flags 中加入所需的参数,一般是这三个:-ObjC、-all_load、-force_load,我添加了第一个问题就解决了。

26. XCode 8 制作framework_第9张图片
20161110225605785.png

13.至此,我的.framework制作和使用就完成了,使用过程:在项目的全局.pch文件中包含了.framework头文件,刚开始编写代码时没有提示, clear一下再编译就好了。

14.问题补充:如果制作的.framework中包含其他第三方框架,而且其他第三方框架中有bundle文件,在拉入的时候可以忽略这个bundle,制作.framework成功后,可以将这个.framework和刚才那个bundle文件放入一个文件夹,再拖入其他项目中,或者同时将.framework和bundle拖入其他项目中

你可能感兴趣的:(26. XCode 8 制作framework)