Xcode10 & Cocoapods - error: Multiple commands produce

全部的错误信息如下(省略部分路径):

error: Multiple commands produce

'/Users/xxx/Library/Developer/Xcode/DerivedData/.../iphoneos/SDWebImageBPGCoder.framework':

1) Target 'SDWebImageBPGCoder' has create directory command with output '/Users/.../iphoneos/SDWebImageBPGCoder.framework'

2) Target 'SDWebImageBPGCoder.default-bpgenc' has create directory command with output '/Users/.../iphoneos/SDWebImageBPGCoder.framework'

大致原因就是 2 个 framework 要写入到同一个文件, 就报出了这个错误.

解决过程

SDWebImageBPGCoder.framework 是我需要的, 但是 SDWebImageBPGCoder.default-bpgenc 却并不知道是什么东西, 于是看一下 Pod 的 target 下.
发现如图情况:

因为以前遇到过类似的情况, 当时 2 个 framework 是因为未配置 iOS 版本 的问题导致的.

看看 Podfile 的配置情况

pod 'SDWebImageBPGCoder', '~> 0.6.0'
pod 'SDWebImageBPGCoder/bpgenc', '~> 0.6.0'

emmmm... 是这里配置的问题吗?
看了下 .podspec 的配置, 既然子模块是依赖于主模块的, 去掉这行好了.

pod 'SDWebImageBPGCoder', '~> 0.6.0'

然后 pod install 再看只剩下 SDWebImageBPGCoder.

Command + B...
Build Succeeded!

以前的确是没有注意过还有这样的问题存在, 也是在 Xcode 10 之后才开始出现各种原因导致 Multiple commands produce 这样的编译错误.

一般此类错误可以通过 File->Workspace Settings...->Build System 修改为 Legacy Build System 来解决. 如图:

屏幕快照 2019-05-22 下午7.59.41.png

但是这算是逃避的一种做法, 还得找到真正的原因才能从根本上解决掉问题.

你可能感兴趣的:(Xcode10 & Cocoapods - error: Multiple commands produce)