很久之前就要写来着,但是由于种种原因没有写了,最近在搭一个项目的框架,我用的多工程联编的方式,所以趁机有时间写一下.给大家参考一下,如果有写的不好的地方见谅.
展示一下效果
(一)创建方式
第一步肯定是要创建工程的但是创建的工程有两种方式
(1)直接创建最原始的不使用pods
(2)使用pods
我这里使用的是不用pods的(影响应该不大,有兴趣的可以看完后自己测一下)
(二)开始创建工程
(1)创建一个普通的工程
(2)创建两个framework并且各定义一个打印的方法(这里只展示了创建方法自己按照这个方法创建两个就可以了)
(3)将工程添加进主工程
(4)重点从现在开始开始关联工程
1.现在我们要做的是主工程调用framework
首先我们先配置相关的配置
设置子工程的配置
设置主工程
一个库调用另外的一个库(这个时候可以发现报黄了别急下面就干掉他)
解决!!!
接下来说一下注意事项
1.有时候我们编译的时候会报duplicate symbols for architecture x86_64这个错了解解决方案
2.或者说这个错Can't map file, errno=22 file 'xxx' for architecture arm64(armv7)了解解决方案
3.如果加入-ObjC报错的也可以看第二种方案了解解决方案
- 如果静态库中有category类,则在使用静态库的项目配置中Other Linker Flags需要添加参数-ObjC或者-all_load(这个-all_load慎用)。(这个时候可能会报错请点击这里了解解决方案,可能原因库中的文件有重名的)
5.如果创建的framework类中使用了.tbd,则需要在实际项目中导入.tbd动态库
6.我们生成的动态库有时候真机和模拟器不能共用,如果不嫌麻烦可以使用的时候来回切换路径,否则的话请点击这里framework的创建及合并