使用CocoaPods和use_frameworks导致的构建错误:“Unknown type name FBSDK_EXTERN”

3

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

Unknown type name FBSDK_EXTERN [facebook header file]

针对使用此extern的每个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个回答

3

我也遇到了同样的问题。

我认为这可能是由 CocoaPods 缓存引起的。

最好的方法(并且对我有效)是

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

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

干杯


感谢您的帮助。删除框架文件夹并没有起到作用。然而,通过使用您的建议使用先前版本4.37.0,我成功地构建了项目。但是我无法升级到4.38.0。您有任何想法可以帮助我升级到4.38.0吗?更新需求是导致这个问题的原因。当我升级到4.38时,我会遇到“Unknown type name FBSDK_EXTERN”错误。 - JeffB6688
实际上,我看到Facebook只是警告我升级到4.37,所以也许4.38还没有可用。所以感谢您的帮助。我已经标记为已解决。 - JeffB6688

1

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


0

我尝试了Francisco的解决方案,但没有成功,于是我降级到4.37.0版本,但突然间仍然遇到了相同的错误(尽管在尝试更新之前我已经安装了这个版本)。

接着帮助我的是简单地清理Xcode的构建文件夹,现在编译对我来说可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接