iOS 好东西iOS多工程联编iOS进阶

iOS多工程联编最新详解版(2018-4-19)及framewo

2018-04-19  本文已影响358人  _菩提本无树_
很久之前就要写来着,但是由于种种原因没有写了,最近在搭一个项目的框架,我用的多工程联编的方式,所以趁机有时间写一下.给大家参考一下,如果有写的不好的地方见谅.

展示一下效果

最终效果截图

(一)创建方式

  第一步肯定是要创建工程的但是创建的工程有两种方式
  (1)直接创建最原始的不使用pods
  (2)使用pods
  我这里使用的是不用pods的(影响应该不大,有兴趣的可以看完后自己测一下)

(二)开始创建工程

(1)创建一个普通的工程

屏幕快照 2018-04-19 下午1.48.48.png 屏幕快照 2018-04-19 下午1.49.26.png 1.png

(2)创建两个framework并且各定义一个打印的方法(这里只展示了创建方法自己按照这个方法创建两个就可以了)

屏幕快照 2018-04-19 下午1.50.21.png 屏幕快照 2018-04-19 下午1.50.45.png
2.png 3.png

(3)将工程添加进主工程

屏幕快照 2018-04-19 下午2.01.05.png
屏幕快照 2018-04-19 下午2.01.31.png
添加进去后的效果.png

(4)重点从现在开始开始关联工程

1.现在我们要做的是主工程调用framework
首先我们先配置相关的配置
添加framework到主工程.png 将两个framework添加到主工程.png

设置子工程的配置

将库的类型设为静态库.png
将库的类型设为静态库.png 将需要外界访问的.h的文件放到public中.png

设置主工程

设置库的路径否则访问不到的.png .设置库的路径否则访问不到的png 头文件的路径也需要设置.png 好了在主工程中写代码就可以调用了.png

一个库调用另外的一个库(这个时候可以发现报黄了别急下面就干掉他)

一个库调用另外的库的文件也可以了.png 设置需要调用的库的路径.png 设置需要调用的库头文件的路径.png

解决!!!

接下来说一下注意事项
1.有时候我们编译的时候会报duplicate symbols for architecture x86_64这个错了解解决方案
2.或者说这个错Can't map file, errno=22 file 'xxx' for architecture arm64(armv7)了解解决方案
3.如果加入-ObjC报错的也可以看第二种方案了解解决方案

  1. 如果静态库中有category类,则在使用静态库的项目配置中Other Linker Flags需要添加参数-ObjC或者-all_load(这个-all_load慎用)。(这个时候可能会报错请点击这里了解解决方案,可能原因库中的文件有重名的)

5.如果创建的framework类中使用了.tbd,则需要在实际项目中导入.tbd动态库
6.我们生成的动态库有时候真机和模拟器不能共用,如果不嫌麻烦可以使用的时候来回切换路径,否则的话请点击这里framework的创建及合并

好了这就是一个完整的工程了,喜欢点个赞!有问题可以留言,如果有写的不好的地方欢迎各位指正!该文档会随着项目的进度随时更新!

,

2018.7.13更新pods工程创建多工程

1.首先创建一个pods工程

2.按以上步骤完成继承frameWork工作

3.在需要引用pods工程中文件的framework中设置相关路径,如下图接下来就可以使用了

屏幕快照 2018-07-13 上午11.36.07.png 屏幕快照 2018-07-13 上午11.39.18.png 屏幕快照 2018-07-13 上午11.39.30.png 屏幕快照 2018-07-13 上午11.39.39.png

OK了如果还有什么问题欢迎随时留言!

上一篇下一篇

猜你喜欢

热点阅读