CocoaPods use_frameworks!导致“X类在Y和Z中都实现”

时间:2015-05-30 13:38:51

标签: swift cocoapods

我想通过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]:类FBSDKAccessToken在/ 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和/ Users / brian / Library / Developer / CoreSimulator / Devices / 2146BB4A-B290-4538-A090-41DA702BD959 / data / Containers / Bundle / Application / 8F5457C5- 253A-4E65-B21A-12438B642201 / MyApp.app / MyApp的。将使用两者之一。哪一个未定义。

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

我确信它是由use_frameworks!引起的。如果我从我的Podfile中删除此语句并使用bridging-header,则此错误消失,一切都很好。

我用Google搜索了一段时间,但似乎没有人在互联网上收到此错误。

如何在使用use_frameworks!

时摆脱此错误

1 个答案:

答案 0 :(得分:1)

事实证明,我从一开始就没有使用use_frameworks!并在我开始处理项目后使用它。这触发了一个错误,导致我的模拟器上有两个相同库的源,并抛出了这个错误。

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