sta*_*nne 42 objective-c facebook-ios-sdk ios8
我正在尝试将Facebook SDK添加到Xcode中的iOS 8 Objective-C应用程序中.我根据FB-dev说明进行了安装.但是,当我将标头添加到AppDelegate.m文件时,出现"无法构建模块'FBSDKCoreKit'"错误.
#import "AppDelegate.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
Run Code Online (Sandbox Code Playgroud)
基于我在别处读到的内容
我很难过.
abj*_*ato 47
FBSDKCoreKit无法构建,因为FBSDKAppLinkResolver.h头文件中的" 包含框架模块内的非模块化头 "错误: #import <Bolts/BFAppLinkResolving.h>在行中.
来自Swift编译器错误的解决方案:"框架模块内部的非模块化头"(切换CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES)对我没有帮助.
我的解决方案
把这些代码放在里面
framework module Bolts {
umbrella header "Bolts.h"
export *
module * { export * }
explicit module BFAppLinkResolver {
header "BFAppLinkResolver.h"
link "BFAppLinkResolver"
export *
}}
Run Code Online (Sandbox Code Playgroud)有趣的事实是,在FBSDKCoreKit这样的方案是由Facebook实现的,为什么他们不把它应用到Bolts ......
小智 39
不确定它是否有副作用,但在构建设置中将"允许非模块化包含在框架模块中"设置为"是"为我解决了问题.希望它也适合你.
Dan*_*rov 11
对于Objective-C,我使用Paul Lehn回答:https: //developers.facebook.com/bugs/362995353893156/
- 将-ObjC标志添加到项目的Other Linker Flags构建设置中.(如果你不想添加项目配置,初始化按钮类)
- "构建设置"中的"允许框架模块中的非模块化包含"设置为"是"
- 将"启用模块"(c和Objective-C)设置为No.
(也不要忘记添加框架,对我来说它是:"AdressBook""QuartzCore""CoreLocation""CoreGraphics"如果还没有添加,还有"UIKit""基础""CoreData")
它终于为我工作了
所有这些都用于我的项目文件夹中的自定义文件夹中的链接FBSDK,而不是来自〜/ Documents/FacebookSDK
小智 9
来自Chris Pan(Facebook团队):https: //developers.facebook.com/bugs/362995353893156/
4.0.1版本添加了模块映射(应该已经避免了桥接头的需要)但看起来可能会导致一些其他兼容性问题.我们正在进行适当的修复,但另一种解决方法是从每个FBSDK*Kit.framework包中手动删除模块映射; 例如,
rm -r ~/Documents/FacebookSDK/FBSDKCoreKit.framework/Modules/(并重复FBSDKLoginKit和FBSDKShareKit)
据我所知,我们有2个选项来处理这个问题:
如果您遇到"FBSDKCoreKit"问题,可以尝试以下解决方案:
转到构建设置并搜索"允许非模块化" 和"设置"
"允许框架模块中的非模块化包含"标记为YES

转到Document/FacebookSDK文件夹
然后转到FBSDKCoreKit.framework
在此文件夹中删除模块文件夹.然后在项目中添加FacebookSDK库.
将Framework搜索路径设置为"〜/ Documents/FacebookSDK"
查找框架搜索路径的步骤
转到项目的构建设置并搜索"框架搜索路径".
然后添加"〜/ Documents/FacebookSDK"

编辑:
请在Facebook应用程序中打开框架搜索路径并复制粘贴您应用程序中提到的所有路径.类似于我在下面的屏幕截图中附加的路径

这将解决您的问题