制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)

记录一下静态库的制作,同时给需要的小伙伴看一下,也希望有做得的不对的地方大神可以指点一下。

一、创建测试工程

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第1张图片
chushi.jpg

二、添加制作FrameWork工程

1) 添加制作framework的工程


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第2张图片
chuangFramework.jpg

2)选择Cocoa Touch Framework 点击Next


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第3张图片
屏幕快照 2018-03-27 上午11.24.37.png

3)创建成功后可以看到相应的用来制作FrameWork的工程
制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第4张图片
Framework.jpg

三、相关配置

1)选择Mach-O的编译方式
这一步决定我们制作出来的是静态库还是动态库,默认选择的是Dynamic Library,要手动选择Static Library


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第5张图片
屏幕快照 2018-03-27 上午11.50.20.png

2) 修改编译集指令
模拟器:iPhone4s~5 : i386 iPhone5s~6plus : x86_64
真机:iPhone3gs~4s : armv7 iPhone5~5c : armv7s iPhone5s~6plus : arm64
如果这里,设置为YES,那么编译出来的静态库就只包含当前设备的指令集。设置为NO,则会把所有指令集的都打包合并。


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第6张图片
屏幕快照 2018-03-27 下午12.02.28.png

3)如果你的framework里面需要添加一些分类,那么需要在Other Linker Flags 添加 -all_load(注意符号不要用中文写了,-all_load它的作用是加载静态库中所有文件,-all_load作用于所有的库)
制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第7张图片
屏幕快照 2018-03-27 下午12.09.53.png

4)设置Framework支持的最低版本的iOS系统
制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第8张图片
systom.jpg

四、添加依赖的第三方framework或.a

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第9张图片
屏幕快照 2018-03-27 下午1.17.29.png

设置其搜索路径


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第10张图片
屏幕快照 2018-03-27 下午3.06.31.png

五、添加第三方Framework或.a所需的依赖库

这里添加的.dylib如果使用新的.tbd编译会报错,简单的处理就是还替换添加.dylib的库<在Link Binary withLibaraies中点击加号->Add Other...->Shift + Command + G组合键->输入/usr/lib->找到需要添加的库


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第11张图片
屏幕快照 2018-03-27 下午2.22.51.png

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第12张图片
屏幕快照 2018-03-27 下午2.24.30.png

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第13张图片
yilai.jpg

六、配置好,开始编写代码。我就不写了直接copy进来了。

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第14张图片
屏幕快照 2018-03-27 下午2.33.55.png

七、设置外放头文件

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第15张图片
touwenjian.jpg

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第16张图片
tou.jpg

八、配置测试工程

1)将依赖的三方库copy到测试工程里


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第17张图片
屏幕快照 2018-03-27 下午2.46.45.png

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第18张图片
屏幕快照 2018-03-27 下午2.47.56.png

2)添加相关依赖库以及设置其所需的其他配置


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第19张图片
屏幕快照 2018-03-27 下午2.53.39.png

九、在测试工程中,添加头文件进行测试

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第20张图片
header.jpg

十、如果测试可以编译通过就可以打包了

1)Debug版本


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第21张图片
bao.jpg

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第22张图片
iphone.jpg

2)release版本


制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第23张图片
release.jpg

3)查看生成的Framework
制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第24张图片
屏幕快照 2018-03-27 下午3.45.02.png

制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework)_第25张图片
屏幕快照 2018-03-27 下午3.46.32.png

十一、有关Framework的相关合并我就附上一个链接了,写的不对的地方希望看到的大神可以给指点一下。

  • 真机和模拟器framework合并
    https://www.jianshu.com/p/a4a54d74c060

参考

https://www.jianshu.com/p/e588bb0411d8
https://www.jianshu.com/p/155a3cfb765e
https://www.jianshu.com/p/43d55ae49f59
https://zhuanlan.zhihu.com/p/24368343

你可能感兴趣的:(制作Framework(测试工程和Framework制作二和一,Framework中包含第三方.a或Framework))