解决 libssl 和 libcrypto 类似冲突
前言
当我们通过 Cocoapods 集成第三方类库时,我们可能会收到类似以下提示信息:
The ‘xxxx’ target has libraries with conflicting names: libcrypto.a and libssl.a. ,造成这种情况的原因是由于第三方 SDK 中各自集成了 openssl 安全加密类库导致符号文件发生冲突。
解决方法
目前有三种解决方法方法:
- 手动集成冲突的第三方类库,移除某一方的冲突文件,类似:libssl
- 通过 Cocoapods 提供 post_install 方法对冲突的类库去除
- Cocoapods + 手动删除
在解决类似冲突时,笔者采用的是第三种方法。先将冲突的一方 SDK 通过 pod 进行安装,打开 Xcode ,手动找到冲突的文件,进行删除。再集成另一个冲突的类库。
注:当然最好的方法是通过手动集成,或者通过 Cocoapods 对冲突的类库进行去除。