在此更改日志(facebook change-log)中声明,swift 不需要 objective-c 桥接 header 。
但是当我在 AppDelegate.swift 中导入 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'
编辑:我什至将框架模块内的允许非模块化 header 设置为YES。
最佳答案
我有完全相同的问题,建议的解决方案 https://stackoverflow.com/a/29457503/425682对于一个直接在我的 Swift 项目上工作的 Objective-C 项目:
在 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 中不再需要),并且无需更改build设置。
编辑:这个bug从 Facebook SDK 4.1 版开始,该库现已修复,无需进行任何更改。
关于xcode - Facebook SDK 4.0.1 Swift 错误 xcode 6.2 iOS 8.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29447005/