我正在实施FB登录,所以我从https://developers.facebook.com/docs/ios下载了SDK。
然后我将FBSDKCoreKit
,FBSDKLoginKit
和FBSDKShareKit
框架拖到我的项目中。
当我运行项目时它工作正常。但当我关闭并重新打开它时,会出现"FBSDKCoreKit/FBSDKCoreKit.h not found error"
。然后我再次将粘贴FBSDKCoreKit
框架复制到我的项目库中
并且错误消失,此过程继续。有人在此之前遇到过这个问题吗?
我该怎么做才能解决这个错误?
答案 0 :(得分:93)
请务必遵循以下步骤:
取消选择将项目复制到目标组的文件夹中。 https://developers.facebook.com/docs/ios/getting-started/
此外,在您的构建设置中,请查看此字段:"框架搜索路径" 你应该有这样的东西:
/Users/[username]/Documents/FacebookSDK
或更一般的配置
~/Documents/FacebookSDK
另外,查看Finder并确保框架实际存在
答案 1 :(得分:59)
更新Cocoapods 1.0.0
后,我删除了pod.lock
并安装了4.7.0
,4.11.0
的当前稳定广告连播版本(FBSDKCoreKit
至FBSDKLoginKit
) ,FBSDKShareKit
然后我遇到了同样的错误。我做的是:
在Xcode中添加了标题搜索路径构建设置:
"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"
"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"
"${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"
"${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"
然后我还有另一个文件的错误。因为XCode正在使用预构建框架。
未找到FBSDKCoreKit / FBSDKCopying.h
在终端
中运行此命令rm -rf ~/Library/Developer/Xcode/DerivedData
打开XCode并成功构建
答案 2 :(得分:34)
我必须通过删除框架并通过右键单击项目再次添加它来解决此问题 - >添加文件...,然后选择框架并选择复制文件(如果需要)。我知道这不是Facebook推荐的,但是我无法让它发挥作用,但这种方式有效! 我使用的是FBSDK和Xcode 7 beta 6的v4.6。 希望它可以帮助您和其他遇到同样问题的人:)
答案 3 :(得分:16)
这也花了我几个小时的痛苦!最后我找到了根本问题。
Facebook SDK 必须位于〜/ Documents / FacebookSDK
这是因为在RCTFBSDK项目中,此路径是硬编码的。但您可以通过将自定义位置添加到 RCTFBSDK 项目的框架搜索路径来添加自定义位置(它将显示在错误控制台中)!
答案 4 :(得分:7)
FB开发人员说不要选择复制文件。这会产生问题。但我反对。
我根据需要选择了复制项目。它在我的项目中复制了Frameworks。 def single_insert_or_delete(s1,s2):
s1lower=s1.lower()
s2lower=s2.lower()
str_1=list(s1lower)
str_2=list(s2lower)
string_1=set(str_1)
string_2=set(str_2)
mismatch=list(string_1.symmetric_difference(string_2))
exact="0"
one_change="1"
otherwise="2"
if s1lower==s2lower:
return int(exact)
elif len(mismatch)<2:
????????
return int(one_change)
else:
return int(otherwise)
s1=input("write a word: ")
s2=input("write a word: ")
print(single_insert_or_delete(s1,s2))
也自动Search Path
添加了xcode 7.2
。
同时仔细检查Framework Search Paths
下Search Paths
下Build Settings
下{{1}}字段下是否有任何内容,然后添加等于/ Users / user / Documents的$(PROJECT_DIR) / .... PROJECT..DIR ...
成功编译了2个项目。
答案 5 :(得分:5)
我不得不在$(PROJECT_DIR)
之上的框架搜索路径中移动FacebookSDK路径 <table class="table">
<tbody>
<tr>
<td>Name</td>
<td>Name</td>
</tr>
<tr>
<td>Address</td>
<td><strong>Address</strong>
<p>21</p>
<p>Somewhere Street</p>
<p>Somewhere City</p>
<p>That Country</p>
<P>BWERE EREWW</P>
</td>
</tr>
<tr>
<td>Something</td>
<td>Something</td>
</tr>
</tbody>
</table>
答案 6 :(得分:3)
如果以上任何答案无效,请尝试以下操作:
打开您的~/Documents/FacebookSDK
文件夹。
检查文件名右侧是否有云图标:
如果是这样,macOS会从您的计算机中删除您的文件并将其上传到iCloud! (感谢Apple)
你可以:
答案 7 :(得分:3)
如果您的FacebookSDK与
不同,请解决此问题〜/文档/ FacebookSDK
因为您不希望iCloud Drive加载FacebookSDK; 您必须更改添加的
的“框架搜索路径”反应天然-fbsdk
这是因为在Libraires里面的RCTFBSDK.xcodeproj中;路径是硬编码的。但您可以通过将自定义位置添加到RCTFBSDK项目的框架搜索路径来添加自定义位置。
答案 8 :(得分:2)
我有同样的问题。我使用的是Facebook SDK版本4.10.0。我知道我的解决方案并不好,但对我有用。我改变了Facebook的源代码。
已将导入文件路径从#import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>
更改为#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>
答案 9 :(得分:2)
我遇到了同样的问题。我通过在我的框架搜索路径值周围使用引号来修复它,即“/ Users / .....”。显然,我的文件路径中有一些空格。
答案 10 :(得分:2)
对于React Native开发者:
建议执行的步骤:
1。确保在〜/ Documents / FacebookSDK中安装了Facebook SDK框架。
2)确保 FBSDK [Core,Login,Share] Kit.framework 显示在 构建目标的Build中的Link Binary with Libraries部分 阶段。
3)确保您的框架搜索路径 构建目标的构建设置为
$(HOME)/Documents/FacebookSDK
代替
~/Documents/FacebookSDK
如果它仍然不适合您,则:
1)sudo chmod -R 755 ~/Documents/FacebookSDK
2)将 RCTFBSDK.xcodeproj 的框架搜索路径设置为
$(HOME)/Documents/FacebookSDK
(在项目文件夹的库下) set RCTFBSDK framework searchpath as here
清理项目(命令+ shift + k)并构建。
答案 11 :(得分:1)
对于 Xcode 7.3 ,以下对我有用。 按照FB指南中提到的步骤操作,另外执行以下操作:
步骤1.转到Document / FacebookSDK文件夹
步骤2.单击FBSDKCoreKit.framework
步骤3.在此文件夹中删除模块文件夹,然后拖放到Xcode项目中。
参考文献:https://stackoverflow.com/a/29532202
由于
答案 12 :(得分:1)
Xcode 11 + CocoaPods解决方案
在项目的根目录中,即您在 MyApp.xcworkspace 中打开终端和初始化容器的pod init
的相同路径,然后添加所需的FBSDK容器-您的Podfile
应该看起来像这样:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
end
现在在您的终端机pod install
中,打开 MyApp.xcworkspace ( 不是 MyApp.xcodeproj 强>)。转到MyApp
-> Build Phases
-> Link Binary with Libraries
,您应该在框架Pods_MyApp.framework
的底部看到。如果单击+
下的Pods_MyApp.framework
,则应在Workspace
下的新窗口中列出Pods
,其中所有与FBSDK相关的地方都应在其中。
注意:请确保您安装的是 FBSDK ,而不是 Facebook SDK ,因为第二个已过时。
答案 13 :(得分:1)
使用 CocoaPods ,唯一对我有用的是:
在Xcode中的构建设置下更新标题搜索路径(不 框架搜索路径):
- "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"",
- "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"",
+ "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"",
+ "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"",
添加缺少的标题(s?):
cd Pods/Headers/Public/FBSDKCoreKit/FBSDKCoreKit/ && ln -s ../../../../FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h FBSDKCoreKit+Internal.h
修改第2点。在每次调用pod install
之后,显然需要重复这一点。
答案 14 :(得分:1)
对于从Carthage
迁移到Cocoapods
的人,请确保从Build Phases选项下的Carthage
中删除FBSDKCoreKit的Link Binary With Libraries
个引用。
答案 15 :(得分:0)
在FBSDKLoginKit
中有相同的错误
如果您使用多个Pod项目
install! 'cocoapods',
:generate_multiple_pod_projects => true
然后,您应强制cocoapods将所有FBSDK Pod放入同一个项目中,以使私有标头可见
pod 'FBSDKCoreKit', '5.11.0', :project_name => 'FBSDK'
pod 'Bolts', '1.9.0', :project_name => 'FBSDK'
pod 'FBSDKShareKit', '5.11.0', :project_name => 'FBSDK'
pod 'FBSDKLoginKit', '5.11.0', :project_name => 'FBSDK'
答案 16 :(得分:0)
故障排除后,在此处使用多个答案。这就是我所做的。
~/Documents/FacebookSDK
更改为"$(HOME)/Documents/FacebookSDK"
注释:我使用了引号"
"$(HOME)/Documents/FacebookSDK"
移到了标题搜索路径中列表的顶部。答案 17 :(得分:0)
我已经安装了react-native-fbsdk并使用react-native-link react-native-fbsdk进行链接。
遵循以下链接的说明
https://developers.facebook.com/docs/react-native/configure-ios
这提供了使用ios_setup.js链接react-native库的步骤。我遵循了以下步骤。
在facebook developer accou nt上的设置。
通过在以下位置执行以下命令来安装文件ios_setup.js: 项目根目录下的命令提示符。
curl -O https://raw.githubusercontent.com/facebook/react-native-fbsdk/master/bin/ios_setup.js
npm install plist xcode adm-zip
node ios_setup.js [App ID] [App Name]
运行节点ios_setup.js时,它将自动链接ios中的所有文件。
答案 18 :(得分:0)
我将框架拖到xcode内的Framework文件夹中,根据需要选择复制文件,并且一切正常,无需进行其他任何配置。
答案 19 :(得分:0)
我有类似的问题。修复包括我选择:&#34;如有必要则复制文件&#34;手动将不同的框架添加到XCode框架中时。
答案 20 :(得分:0)
我遇到了类似的问题,无论如何都无法解决编译错误。
我跟着并执行了几次精确的集成步骤,直到我注意到我的项目文件夹中有 FBSDKCoreKit.framework 的副本(可能是因为错误而发生)< / em>的。此外,框架搜索路径除了/ Users / {username} / Documents / FacebookSDK之外,还包含 $(PROJECT_DIR)。
所以我已经从项目目录删除了 FBSDKCoreKit.framework的副本,现在一切正常。
答案 21 :(得分:0)
我个人遇到各种路径的空间,包括应用名称。删除空格(或在所有地方添加“”以解决问题。
答案 22 :(得分:0)
将目录添加到构建设置 - &gt; &#34;框架搜索路径&#34;,确保将其添加到Debug AND Release。
愚蠢的错误,但如果您是xcode中的iOS开发新手,您可能会错过这个。
答案 23 :(得分:0)
升级到Xcode 8时出现此问题,并且可以通过更改
来解决此问题 #import <FBSDKCoreKit / FBSDKCoreKit.h>
到
#import <FBSDKCoreKit/FBSDKCoreKit.h>
答案 24 :(得分:0)
我昨晚遇到了这个问题,并希望发布我的解决方案以防其他人遇到同样的问题。我的问题是我的应用程序在sim和我的设备上构建并运行良好,但是每当我尝试运行单元测试时,由于FBSDKCoreKit构建都会失败。我花了大约30分钟才找到问题,当我这么做时,我觉得自己像个假人。
确保FBSDKCoreKit包也是测试的目标,而不仅仅是常规应用程序构建。
答案 25 :(得分:-1)
- &gt;构建配置。
-> Framework Search paths.
将FacebookSDK目录放在我的案例中 〜/ Documents / FacebookSDK in:
<强>调试强>,
任何架构我任何Sdk ,
<强>版本强>
尤其是这个错误,因为任何架构中都没有路径我任何Sdk 在我的情况下
〜/ Documents / FacebookSDK 并且应该注意,FacebookSDK文件夹必须在Domuments
中示例
答案 26 :(得分:-2)
将/Users/[username]/Documents/FacebookSDK/
目录更改为Documents/FacebookSDK
,如下所示: