CocoaPods use_frameworks!原因 "Class X is implemented in both Y and Z"

CocoaPods use_frameworks! causes "Class X is implemented in both Y and Z"

我想通过 CocoaPods v0.37.2 将一些 obj-c 库集成到我的 Swift 项目中。

这是我的 Podfile:

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
pod "FBSDKCoreKit", '~> 4.2.0'
pod 'FBSDKLoginKit', '~> 4.2.0'
pod 'FBSDKShareKit', '~> 4.2.0'
end

当我在模拟器上 运行 我的项目时,我总是在控制台上收到以下消息:

objc[40546]: Class FBSDKAccessToken is implemented in both /Users/brian/Library/Developer/CoreSimulator/Devices/2146BB4A-B290-4538-A090-41DA702BD959/data/Containers/Bundle/Application/8F5457C5-253A-4E65-B21A-12438B642201/MyApp.app/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit and /Users/brian/Library/Developer/CoreSimulator/Devices/2146BB4A-B290-4538-A090-41DA702BD959/data/Containers/Bundle/Application/8F5457C5-253A-4E65-B21A-12438B642201/MyApp.app/MyApp. One of the two will be used. Which one is undefined.

(我收到很多类似的信息,这只是一个例子)

我确定这是 use_frameworks! 造成的。如果我从我的 Podfile 中删除这条语句并使用桥接头,这个错误就会消失,一切都很好。

我用谷歌搜索了一段时间,但似乎没有人在 Internet 上收到此错误。

如何在使用 use_frameworks! 时消除此错误?

原来我不是一开始就用use_frameworks!,而是在开始做项目后才用的。这触发了一个错误,导致我的模拟器上有 2 个相同库的来源并引发此错误。

删除模拟器并再次添加回来救了我。 (重置模拟器不起作用,您必须删除模拟器并通过 Window > Devices 将它们添加回来)