【问题标题】:FBSDKCoreKit/FBSDKCoreKit.h not found errorFBSDKCoreKit/FBSDKCoreKit.h 未找到错误
【发布时间】:2015-07-20 02:30:31
【问题描述】:

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

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

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

【问题讨论】:

  • 你设置了你的.plist
  • 是的,带有 FB ID、名称和 URL 类型
  • @MSwapnil 你找到解决方案了吗?
  • @MSwapnil 我正在使用 Pods,我也安装了 Bolts pod。但仍然,上述问题正在发生......
  • @Femina 你找到解决方案了吗?我也在使用 Pods

标签: ios frameworks


【解决方案1】:

请务必按照以下步骤操作:

取消选择将项目复制到目标组的文件夹。 https://developers.facebook.com/docs/ios/getting-started/

另外,在您的构建设置中,查看以下字段:“框架搜索路径” 你应该有这样的东西:

/Users/[username]/Documents/FacebookSDK

或更通用的配置

~/Documents/FacebookSDK

另外,查看 Finder 并确保框架确实存在

【讨论】:

  • 取消选择或选择将项目复制到文件夹中??
  • 取消选择 - 不选择
  • 我遇到了同样的问题,但我也没有将 SDK 从“FacebookSDKs-iOS-20151111”重命名为“FacebookSDK”...
  • 我认为应该是:${HOME}/Documents/FacebookSDK
  • 为什么需要重命名为 FacebookSDK 并且需要在 Documents 文件夹中?
【解决方案2】:

更新Cocoapods 1.0.0后,我删除了pod.lock并安装了FBSDKCoreKitFBSDKLoginKitFBSDKShareKit的当前稳定pod版本(4.7.04.11.0

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

  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\"
    

然后我仍然对另一个文件有错误。因为 XCode 使用的是预构建框架。

未找到 FBSDKCoreKit/FBSDKCopying.h

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

    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  5. 打开 XCode 并构建成功

【讨论】:

  • 这确实有效。谢谢!您愿意详细说明为什么会这样吗?
  • 在这个上救了我。非常感谢!
  • 这就是解决方案!
  • 效果很好,我也没有更改标题搜索路径上的任何内容。
  • 我跳过了 1,2,3,4,5,但我只是出去吃午饭。它奏效了!谢谢!!
【解决方案3】:

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

【讨论】:

  • 但这绝对是错误的路径参考,请确保它存在于 /User/mike/Documents/FacebookSDK 而不是下载文件夹中,也没有像 FacebookSDK1.1.x 这样的版本你答案虽然很有帮助,但保证可以工作。
【解决方案4】:

这也让我痛苦了好几个小时!终于找到了根本问题。

Facebook SDK必须位于 ~/Documents/FacebookSDK

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

【讨论】:

  • 无论出于何种原因,我不得不使用System Framework Search Paths 而不是Framework Search Paths
【解决方案5】:

FB 开发者不要选择复制文件。这会产生问题。但是我做了相反的事情

  1. 如果需要,我选择了副本项目。它在我的项目中复制了框架。 Search Path 也自动由 xcode 7.2 添加。

  2. 1234563 ..目录...

成功编译了2个项目。

【讨论】:

    【解决方案6】:

    我必须在 $(PROJECT_DIR) 上方的框架搜索路径中移动 FacebookSDK 路径

    $(SRCROOT)/../../../Documents/FacebookSDK
    $(inherited)
    $(PROJECT_DIR)
    

    【讨论】:

      【解决方案7】:

      如果以上任何一个答案都不起作用,试试这个:

      打开您的~/Documents/FacebookSDK 文件夹。 检查文件名右侧是否有此云图标:

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

      你可以:

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

      【讨论】:

        【解决方案8】:

        对于 React Native 开发人员:

        建议的步骤:

        1.确保 Facebook SDK 框架安装在 ~/Documents/FacebookSDK 中。

        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的framework搜索路径为

          $(HOME)/Documents/FacebookSDK 
        

        (在项目文件夹的库下) set RCTFBSDK framework searchpath as here

        清理您的项目(command+ shift + k)并构建。

        【讨论】:

          【解决方案9】:

          如果您的 FacebookSDK 与不同的问题的解决方案

          ~/Documents/FacebookSDK

          因为您不希望 iCloud Drive 加载 FacebookSDK; 您必须更改添加的“框架搜索路径”

          react-native-fbsdk

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

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

          【讨论】:

            【解决方案10】:

            Xcode 11 + CocoaPods 解决方案

            在您项目的根目录中,即您有 MyApp.xcworkspace 打开终端和初始化 pod 的 pod init 的同一路径,然后添加所需的 FBSDK pod - 您的 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,因为第二个已经过时了。

            【讨论】:

              【解决方案11】:

              我遇到了同样的问题。我通过在我的框架搜索路径值周围使用引号来修复它,即“/Users/.....”。显然,我的文件路径中有一些空格。

              【讨论】:

                【解决方案12】:

                我有同样的问题。我使用的是 Facebook SDK 4.10.0 版。
                我知道我的解决方案不好,但对我有用。我更改了 Facebook 源代码。 将导入文件路径从#import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>更改为#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>

                【讨论】:

                  【解决方案13】:

                  使用 CocoaPods,唯一对我有用的是:

                  1. 在 Xcode 的 Build Settings 下更新 Header Search PathsNOT Framework Search Paths):

                    - "\"${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. 添加缺少的标题:

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

                  编辑:第 2 点显然需要在每次调用 pod install 后重复。

                  【讨论】:

                    【解决方案14】:

                    对于 Xcode 7.3,以下内容对我有用。 按照 FB 指南中提到的步骤,另外执行以下操作:

                    步骤 1. 进入 Document/FacebookSDK 文件夹

                    步骤 2. 点击 FBSDKCoreKit.framework

                    步骤 3. 在此文件夹中删除 Modules 文件夹,然后拖放到您的 Xcode 项目中。

                    参考:https://stackoverflow.com/a/29532202

                    谢谢

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

                        我遇到了类似的问题,但无论如何都无法解决编译器错误。

                        我遵循并执行了几次确切的集成步骤,直到我注意到我的项目文件夹中有 FBSDKCoreKit.framework 的副本(可能是由于错误而发生的)。此外,除了 /Users/{username}/Documents/FacebookSDK 之外,Framework Search Paths 已经包含 $(PROJECT_DIR)

                        所以我从项目目录中删除 FBSDKCoreKit.framework 的副本,现在一切正常。

                        【讨论】:

                          【解决方案17】:

                          我昨晚遇到了这个问题,并想发布我的解决方案以防其他人遇到同样的问题。我的问题是我的应用程序在 sim 和我的设备上构建和运行良好,但是每当我尝试运行单元测试时,构建都会因为 FBSDKCoreKit 而失败。我花了大约 30 分钟才找到问题所在,当我这样做时,我感觉自己像个傻瓜。

                          确保 FBSDKCoreKit 包也适用于您的测试,而不仅仅是您的常规应用程序构建。

                          【讨论】:

                            【解决方案18】:

                            我在升级到 Xcode 8 时遇到了这个问题,并且能够通过更改来解决它

                            #import <FBSDKCoreKit / FBSDKCoreKit.h>

                            #import <FBSDKCoreKit/FBSDKCoreKit.h>

                            【讨论】:

                              【解决方案19】:

                              当您将目录添加到 Build Settings ->“Framework Search Paths”时,请确保将其添加到 Debug 和 Release。

                              愚蠢的错误,但如果您是 xcode 中 iOS 开发的新手,您可能会错过这个。

                              【讨论】:

                                【解决方案20】:

                                就我个人而言,包括应用程序名称在内的各种路径中的空格都有问题。删除空格(或在任何地方添加“”以保护路径)解决了这个问题。

                                【讨论】:

                                  【解决方案21】:

                                  我有类似的问题。修复包括在手动将不同的框架添加到 XCode 框架中时选择:“如果需要则复制文件”。

                                  【讨论】:

                                    【解决方案22】:

                                    我将框架拖到 xcode 中的 Framework 文件夹中,如果需要,选择复制文件,并且在没有任何其他配置更改的情况下一切正常。

                                    【讨论】:

                                      【解决方案23】:

                                      我已经安装了 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 account 上设置。

                                      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]

                                      运行 node ios_setup.js 时,它会自动链接 ios 中的所有文件。

                                      【讨论】:

                                        【解决方案24】:

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

                                        1. 我把~/Documents/FacebookSDK改成了"$(HOME)/Documents/FacebookSDK"注意:我用引号"
                                        2. 我将"$(HOME)/Documents/FacebookSDK" 移到标题搜索路径列表的顶部。

                                        【讨论】:

                                          【解决方案25】:

                                          FBSDKLoginKit 出现同样的错误

                                          如果你使用多个 pod 项目

                                          install! 'cocoapods',
                                            :generate_multiple_pod_projects => true
                                          

                                          那么你应该强制 cocoapods 将所有 FBSDK pod 放到同一个项目中,以使私有 header 可见

                                          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'
                                          

                                          【讨论】:

                                            【解决方案26】:

                                            ->构建配置。

                                                 -> Framework Search paths.
                                            

                                            将 FacebookSDK 目录放在我的例子中 ~/Documents/FacebookSDK 在:

                                            调试

                                            任何架构 I Any Sdk,

                                            发布

                                            尤其是这个错误,因为 Any architecture I Any Sdk 中没有路径 就我而言

                                            ~/文档/FacebookSDK 并且需要注意的是FacebookSDK文件夹必须在Domuments中

                                            示例

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

                                            【讨论】:

                                            • 不知道你想在这里交流什么。如果这意味着 answer!,请考虑改进
                                            【解决方案27】:

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

                                            【讨论】:

                                              猜你喜欢
                                              • 1970-01-01
                                              • 2017-06-19
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 2022-07-06
                                              • 2020-04-22
                                              相关资源
                                              最近更新 更多