Facebook SDK 4.0.1 Swift错误xcode 6.2 iOS 8.2

时间:2015-04-04 13:29:10

标签: xcode facebook swift sdk xcode6

此更改日志(facebook change-log)中指出,swift不需要objective-c桥接头。

但是当我在 AppDelegate.swift import FBSDKCoreKit时,会发生以下错误:

FBSDKAppLinkResolver.h

  

/用户/ [用户名] /Documents/FacebookSDK/FBSDKCoreKit.framework/Headers/FBSDKAppLinkResolver.h:21:9:   在框架模块中包含非模块化头   ' FBSDKCoreKit.FBSDKAppLinkResolver'

AppDelegate.swift

  

/Users/ashrafkholeif/Projects/xcode/TabbedApplicationTemplate/TabbedApplicationTemplate/TabbedApplicationTemplate/AppDelegate.swift:10:8:   无法构建Objective-C模块' FBSDKCoreKit'

编辑:我甚至将框架模块中允许的非模块化标头设置为 YES

4 个答案:

答案 0 :(得分:7)

我遇到了完全相同的问题,在https://stackoverflow.com/a/29457503/425682上建议的一个Objective-C项目的解决方案可以直接用于我的Swift项目:

在Bolts.framework / Modules / module.modulemap下的Facebook SDK文件夹中写一个新文件,其中包含以下内容:

framework module Bolts {
umbrella header "Bolts.h"

export *
module * { export * }


explicit module BFAppLinkResolver {
    header "BFAppLinkResolver.h"
    link "BFAppLinkResolver"
    export *
}}

这没有桥接标题(在OP提到的SDK 4.0.1版本中不再需要),并且不需要更改构建设置。

编辑:此bug现已修复,自Facebook SDK版本4.1起,该库无需进行任何更改即可运行。

答案 1 :(得分:2)

这是一个错误,Facebook目前正在将此分配给相应的团队"。

要获取此问题的更新,请点击以下链接:

https://developers.facebook.com/bugs/362995353893156/

并点击订阅。

希望它不会花费太长时间来修复。

此处还有最近在SO上发布的相关问题:

issue using FBSDK in swift iOS application

有些人使用此链接上的答案找到了成功(没有一个对我有用):

Facebook iOS8 SDK build module error for FBSDKCoreKit

答案 2 :(得分:2)

对我有用的修复:

rm -r ~/Documents/FacebookSDK/FBSDKCoreKit.framework/Modules/

重复其他框架。

来源:https://developers.facebook.com/docs/ios/troubleshooting#xcode_link

答案 3 :(得分:1)

创建一个新的头文件并导入您正在使用的任何Objective-c代码,如下所示..

#ifndef RJv1_RJBridge_h
#define RJv1_RJBridge_h
#import "NSMutableString+Obfuscated.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#endif

然后转到构建设置,查找Install Objective-C Compability Header,并确保设置为Yes,然后在字段Objective-C Bridging Header中添加头文件的相对路径。

希望它有效!