Facebook SDK 4.0.1 Swift 错误 xcode 6.2 iOS 8.2

Facebook SDK 4.0.1 Swift Errors xcode 6.2 iOS 8.2

在此change-log(facebook change-log)中声明swift不需要objective-c桥接header。

但是当我在AppDelegate.swiftimport FBSDKCoreKit时,会出现这些错误:

FBSDKAppLinkResolver.h

/Users/[username]/Documents/FacebookSDK/FBSDKCoreKit.framework/Headers/FBSDKAppLinkResolver.h:21:9: Include of non-modular header inside framework module 'FBSDKCoreKit.FBSDKAppLinkResolver'

AppDelegate.swift

/Users/ashrafkholeif/Projects/xcode/TabbedApplicationTemplate/TabbedApplicationTemplate/TabbedApplicationTemplate/AppDelegate.swift:10:8: Could not build Objective-C module 'FBSDKCoreKit'

编辑:我什至将允许 non-modular header 内部框架模块设置为 YES.

创建一个新的头文件并导入您正在使用的任何 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 中添加头文件的相对路径。

希望有用!

这是一个错误,Facebook 目前 "assigning this to the appropriate team"。

要获取此问题的更新,请遵循此 link:

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

然后点击订阅。

希望他们不会花太长时间来修复。

这里还有一个最近发布在 SO 上的相关问题:

有些人使用此 link 上的答案取得了成功(none 对我有用):

Facebook iOS8 SDK build module error for FBSDKCoreKit

我遇到了完全相同的问题,在 上为 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 版开始修复,该库无需进行任何更改即可运行。

对我有用的修复:

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

与其他框架重复。

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