Facebook SDK 4.0.1 Swift错误xcode 6.2 iOS 8.2
此处的change-log()说明swift不需要objective-c桥接头 但是,当我在AppDelegate.swift中导入FBSDKCoreKit时,会出现以下错误: FBSDKAppLinkResolver.h /Users/[username]/Documents/FacebookSDK/FBSDKCoreKit.framework/Headers/fbsdkapplingkresolver.h:21:9: 框架模块内包含非模块化标头 “FBSDKCoreKit.fbsdkpplinkresolver” AppDelegate.swift /Users/ashrafkholeif/Projects/xcode/TabbedApplicationTemplate/TabbedApplicationTemplate/TabbedApplicationTemplate/AppDelegate.swift:10:8: 无法生成目标C模块“FBSDKCoreKit”Facebook SDK 4.0.1 Swift错误xcode 6.2 iOS 8.2,xcode,facebook,swift,sdk,xcode6,Xcode,Facebook,Swift,Sdk,Xcode6,此处的change-log()说明swift不需要objective-c桥接头 但是,当我在AppDelegate.swift中导入FBSDKCoreKit时,会出现以下错误: FBSDKAppLinkResolver.h /Users/[username]/Documents/FacebookSDK/FBSDKCoreKit.framework/Headers/fbsdkapplingkresolver.h:21:9: 框架模块内包含非模块化标头 “FBSDKCoreKit.fbsdkppli
编辑:我甚至将框架模块内的allow 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
\ifndef RJv1\u RJBridge\h
#定义RJv1_RJBridge_h
#导入“NSMutableString+Obfuscated.h”
#进口
#进口
#恩迪夫
然后转到生成设置,查找安装Objective-C Compability Header
,并确保设置为Yes
,然后在字段Objective-C桥接Header
中添加头文件的相对路径
希望它能起作用 这是一个bug,Facebook目前正在“将其分配给适当的团队” 要获取此问题的更新,请访问以下链接: 点击订阅 希望不会花太长时间来修复它们 这里还有一个最近发布在SO上的相关问题: 一些人通过使用此链接上的答案获得了成功(没有一个对我有效):
我遇到了完全相同的问题,为Objective-C项目建议的解决方案在我的Swift项目中直接起作用: 在Facebook SDK文件夹的Bolts.framework/Modules/modulemap下编写一个新文件,内容如下:
framework module Bolts {
umbrella header "Bolts.h"
export *
module * { export * }
explicit module BFAppLinkResolver {
header "BFAppLinkResolver.h"
link "BFAppLinkResolver"
export *
}}
这在没有桥接头(OP提到的SDK版本4.0.1中不再需要)的情况下工作,并且不更改构建设置
编辑:从Facebook SDK的4.1版开始,这一问题已经得到修复,该库无需进行任何更改即可正常工作。对我有效的修复:
rm -r ~/Documents/FacebookSDK/FBSDKCoreKit.framework/Modules/
对其他框架重复
来源:这太棒了!到目前为止,最好的解决方案是:)删除模块似乎很笨拙,而且弄乱叮当声选项也不起作用。