由于使用CocoaPods和use_frameworks而导致的'Unknown type name FBSDK_EXTERN'生成错误

时间:2018-10-25 20:59:14

标签: ios xcode facebook cocoapods facebook-sdk-4.0

我正在尝试使用最新的FacebookSDK升级我的iOS应用。 Facebook建议使用CocoaPods进行升级。我已经在使用另一个也使用CocoaPods的第三方SDK。对于现有的第三方SDK,它需要使用use_frameworks!在podFile中。但是,当我运行“ pod update”并构建应用程序时,出现以下错误:

Unknown type name FBSDK_EXTERN [facebook header file]

对于使用此外部元素的每个Facebook头文件。我该如何解决这两个不同的SDK的podFile要求之间明显的不兼容?

我的podFile如下所示:

 platform :ios, '8.0'

 def shared_pod
   use_frameworks!

   pod 'apptentive-ios', '~> 4'
   pod 'FacebookSDK'

 end

 target 'myApp' do
   shared_pod
 end

 target 'myOtherApp' do
   shared_pod
 end

或者,如何解析“未知类型名称FBSDK_EXTERN”以允许我的应用构建?

3 个答案:

答案 0 :(得分:3)

我也有同样的问题。

我相信这可能是由CocoaPods缓存引起的。

(对我有用)的最佳方法是

  • 转到/Pods文件夹
  • 删除有问题的框架文件夹(可能是 名为FBSDKLoginKit)
  • 再次运行pod install --repo-update

如果这样不起作用,请尝试将您的Pod解析到以前的版本 pod 'FacebookSDK', '4.37.0'

欢呼

答案 1 :(得分:1)

尝试使用FacebookSDK 4.37.0编译FBSDKShareKit 4.38.1时出现相同的错误。将FacebookSDK更新到4.38.0可以解决此问题。

答案 2 :(得分:0)

我尝试了Francisco的解决方案但没有成功,降级到4.37.0并突然仍然遇到相同的错误(即使我在尝试更新之前就已安装了该版本)。

然后,只需清理Xcode的构建文件夹,构建就可以了。