找不到FBSDKCoreKit / FBSDKCoreKit.h错误

时间:2015-05-09 05:11:01

标签: ios frameworks

我正在实施FB登录,所以我从https://developers.facebook.com/docs/ios下载了SDK。 然后我将FBSDKCoreKitFBSDKLoginKitFBSDKShareKit框架拖到我的项目中。

当我运行项目时它工作正常。但当我关闭并重新打开它时,会出现"FBSDKCoreKit/FBSDKCoreKit.h not found error"。然后我再次将粘贴FBSDKCoreKit框架复制到我的项目库中  并且错误消失,此过程继续。有人在此之前遇到过这个问题吗?

我该怎么做才能解决这个错误?

27 个答案:

答案 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.04.11.0的当前稳定广告连播版本(FBSDKCoreKitFBSDKLoginKit) ,FBSDKShareKit

然后我遇到了同样的错误。我做的是:

  1. 在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\"
    
  2. 然后我还有另一个文件的错误。因为XCode正在使用预构建框架。

      

    未找到FBSDKCoreKit / FBSDKCopying.h

    1. 清洁构建 - > ⇧⌘K(Shift + Command + K) - 清理构建的框架。
    2. 清洁构建文件夹 - > ⌥⇧⌘K(选项+ Shift + Command + K)
    3. 关闭Xcode //重要! - 否则它会自动为当前打开的项目重新创建DerivedData
    4. 在终端

      中运行此命令
      rm -rf ~/Library/Developer/Xcode/DerivedData
      
    5. 打开XCode并成功构建

答案 2 :(得分:34)

我必须通过删除框架并通过右键单击项目再次添加它来解决此问题 - >添加文件...,然后选择框架并选择复制文件(如果需要)。我知道这不是Facebook推荐的,但是我无法让它发挥作用,但这种方式有效! 我使用的是FBSDK和Xcode 7 beta 6的v4.6。 希望它可以帮助您和其他遇到同样问题的人:)

答案 3 :(得分:16)

这也花了我几个小时的痛苦!最后我找到了根本问题。

Facebook SDK 必须位于〜/ Documents / FacebookSDK

这是因为在RCTFBSDK项目中,此路径是硬编码的。但您可以通过将自定义位置添加到 RCTFBSDK 项目的框架搜索路径来添加自定义位置(它将显示在错误控制台中)!

答案 4 :(得分:7)

FB开发人员不要选择复制文件。这会产生问题。但我反对

  1. 我根据需要选择了复制项目。它在我的项目中复制了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

  2. 同时仔细检查Framework Search PathsSearch PathsBuild Settings下{{1}}字段下是否有任何内容,然后添加等于/ Users / user / Documents的$(PROJECT_DIR) / .... PROJECT..DIR ...

  3. 成功编译了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文件夹。 检查文件名右侧是否有云图标:

screenshot.png

如果是这样,macOS会从您的计算机中删除您的文件并将其上传到iCloud! (感谢Apple)

你可以:

  1. 点击所有云图标,它将下载文件
  2. 在Mac上禁用存储优化以防止再次发生

答案 7 :(得分:3)

如果您的FacebookSDK与

不同,请解决此问题
  

〜/文档/ FacebookSDK

因为您不希望iCloud Drive加载FacebookSDK; 您必须更改添加的

的“框架搜索路径”
  

反应天然-fbsdk

这是因为在Libraires里面的RCTFBSDK.xcodeproj中;路径是硬编码的。但您可以通过将自定义位置添加到RCTFBSDK项目的框架搜索路径来添加自定义位置。

  1. 选择项目
  2. 选择“RCTFBSDK.xcodeproj”
  3. 构建设置
  4. 在“框架搜索路径”中添加自定义路径 例如:/ Users / rajanmaharjan / FacebookSDK
  5. 清洁构建 - &gt; ⇧⌘K(Shift + Command + K) - 清理构建框架。
  6. 建立项目;它应该成功建立。

答案 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 ,唯一对我有用的是:

  1. 在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\"",

  2. 添加缺少的标题(s?):

    cd Pods/Headers/Public/FBSDKCoreKit/FBSDKCoreKit/ && ln -s ../../../../FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h FBSDKCoreKit+Internal.h

  3. 修改第2点。在每次调用pod install之后,显然需要重复这一点。

答案 14 :(得分:1)

对于从Carthage迁移到Cocoapods的人,请确保从Build Phases选项下的Carthage中删除FBSDKCoreKit的Link Binary With Libraries个引用。

enter image description here

答案 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)

故障排除后,在此处使用多个答案。这就是我所做的。

  1. 我将~/Documents/FacebookSDK更改为"$(HOME)/Documents/FacebookSDK" 注释:我使用了引号"
  2. 我将"$(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库的步骤。我遵循了以下步骤。

  1. facebook developer accou nt上的设置。

  2. 通过在以下位置执行以下命令来安装文件ios_setup.js: 项目根目录下的命令提示符。

curl -O https://raw.githubusercontent.com/facebook/react-native-fbsdk/master/bin/ios_setup.js

  1. 通过执行以下命令来安装plist软件包,xcode软件包和adm-zip软件包。 npm install plist xcode adm-zip
  2. 通过执行以下命令来运行脚本ios_setup.js,然后插入您的应用的应用ID和应用名称。如果您的应用程序名称超过一个字长,则将其用引号引起来。

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

示例

https://photos.app.goo.gl/5bD4d39a11AalYsx1

答案 26 :(得分:-2)

/Users/[username]/Documents/FacebookSDK/目录更改为Documents/FacebookSDK,如下所示:

xcode