第一次写简书,可能语言组织不太好,不过我尽可能把这写好。
下面介绍下我在做静态库方面碰到的问题和解决办法
问题一:SDK引用第三方框架(例如:AFNetworking,Masonry等)与外部主工程文件名冲突问题。
解决思路:采用cocoapod管理静态库,将需要用到的第三方框架,采用pod集成到SDK中。和主工程中使用pod是一样的道理。
问题二:SDK引用了其他静态库文件(例如:微信登录,支付宝支付等framework)而外部主工程同样也需要使用这类静态库文件,产生冲突问题。
解决思路:
1、将其他静态库拖入项目时,将图一中红框处勾去掉。

2、在图二处,填上你导入的静态库文件路径。(当报错无法找到导入framework头文件时)

3、主工程正常导入你编写的SDK和需要使用到的第三方静态库。不会出现冲突问题。
问题三:调试静态库方法
方法一:打包成静态库文件,拖进demo工程中,因为已经成了库包,无法在工程中进行断点调试,所以只能NSLog了,很麻烦。不可取。
方法二:
1、正常创建一个.framework工程及一个主工程。
2、将.framework工程直接拖入主工程中。如图三:

3、选择需要编译的工程,记住,每次更改了静态库中的代码,都需要编译一次静态库工程,不然主工程引用的库仍然是之前的库代码。如图四:

希望对各位有点帮助,也希望大神指教。
网友评论