xcode8 Framework制作

啥都不说直入主题
1.打开xcode创建framework项目


xcode8 Framework制作_第1张图片
图1.png

2.将你的源码文件放进工程


xcode8 Framework制作_第2张图片
图2.png

3.将你要公开的头文件写在这里
xcode8 Framework制作_第3张图片
图3.png

并且在build phases里把这些头文件从project移动到public
xcode8 Framework制作_第4张图片
图4.png

4.选择工程文件>target第一项>Build Setting>搜索linking,然后几个需要设置的选项都显现出来,首先是Dead Code Stripping设置为NO,网上对此项的解释如下,大致意思是如果开启此项就会对代码中的”dead”、”unreachable”的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,将此项关闭也未曾不可。然后将Link With Standard Libraries关闭,我想可能是为了避免重复链接。最后将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。还有一个我踩的坑,要设置defines module为NO,不然集成的时候会出现Include of non-modular header inside framework module错误。设置bitcode为NO。


xcode8 Framework制作_第5张图片
图5.png

xcode8 Framework制作_第6张图片
图6.png

xcode8 Framework制作_第7张图片
图7.png

这里的默认就好了。
xcode8 Framework制作_第8张图片
图8.png

5.如果要用到cocoapods第三方库,则直接跟正常项目一样添加cocoapods就行了
xcode8 Framework制作_第9张图片
图9.png

6.添加bundles图片,则直接新建文件夹,然后改后缀名为.bundle然后把图片拖进去就行了。
用图片的时候这样用
xcode8 Framework制作_第10张图片
图10.png

7.分别选择模拟器和真机command+B最终生成模拟器的framework和真机的framework,然后我们将他们合并:

打开终端,lipo -create 模拟器framework里面的二进制文件路径 真机framework里面的二进制路径 -output 输出合并后的二进制路径/二进制文件名称(注意是合并framework里面的二进制文件而不是framework)最后把输出合并后的二进制文件复制替换到模拟器framework里面的二进制文件和真机framework里面的二进制文件。


xcode8 Framework制作_第11张图片
图10.png

8.将替换合并后的模拟器framework或者真机framework直接拖到项目工程中,然后再把存放图片的bundle也拖到项目工程中。直接使用就行了。

参考资料:
Xcode 创建.a和framework静态库
ios开发:Xcode8制作framework及使用
iOS8 Framework使用加载xib及图片
【iOS 开发】打包 Framework 时使用 CocoaPods 引入第三方库的方法

你可能感兴趣的:(xcode8 Framework制作)