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.swift中import 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
在此change-log(facebook change-log)中声明swift不需要objective-c桥接header。
但是当我在AppDelegate.swift中import 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