xcode8 Framework制作

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


图1.png

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


图2.png

3.将你要公开的头文件写在这里
图3.png

并且在build phases里把这些头文件从project移动到public
图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。


图5.png

图6.png

图7.png

这里的默认就好了。
图8.png

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

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

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

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


图10.png

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容