用cocoapods导入的三方库方法无法识别问题

来源:互联网 发布:红帽群排名优化软件 编辑:程序博客网 时间:2024/06/05 08:55

今天遇到一个新奇的问题,特意记录下来

首先有个半成品项目需要添加一个新功能,这个功能在别的项目已经弄好了,我就想着直接拿过来用好了,然后巴拉巴拉一顿弄,编译success。我很开心。以为成功了。然后run一下之后……直接崩了,报的错误是无法识别的选择器发送给实例

unrecognized selector sent to instance 0x6000000cb050

然后我打了断点想看看崩在哪,发现是刚导的三方库的问题,我调用这个三方库里方法的时候,在run的时候无法识别这个方法。然后我又在三方库里的 +(void)load 里面打了断点,发现根本不走这个方法。然后我就开始了一趟漫长的跑偏之旅,我想着是load这个方法应该在main方法执行前就执行的,但是却没有执行,我就各种找load方法可能不执行的原因。但是找到的可能导致不执行的原因跟我的实际情况全都不符。。问题定位错了,当然结果是没找到。。。


然后突然又发现,另一个导入的三方库也出现同样的问题。那么,问题就很明显了,是cocoapods的问题。找准问题定位,解决起来就简单了,问了问度娘。

解决方法如下:

点击项目文件 project.xcodeproj,右键显示包内容,用文本编辑器打开project.pbxproj,删除OTHER_LDFLAGS的地方,保存,pod update

果然问题解决了。

原来在我导三方库到工程里update的时候,cocoapods就已经给我报警告了,类似这种:

[!] The `Paopao [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.

但是由于当时导的时候没注意,导致直接忽略了这个问题,以为直接成功了。就出现了后面这一系列问题,后面这一系列问题如果一直在工程里找的话,工程既不报错,也没有警告,编译也是success,方法点进去看之类的都正常,只是在run的时候出问题,这样的问题是最难受的,所以,以此为戒,时刻提醒自己,每一步尽管可能再细小的东西都要认真仔细,免得出现各种莫名其妙的bug。

阅读全文
1 0
原创粉丝点击