47

它说“找不到 FacebookSDK/FacebookSDK.h 文件”

但是我可以在#import 上跳转到定义,它会将我带到文件中。

一旦我添加了#import,它现在就知道 FBFriendPickerDelegate 是什么,并且它现在在该行上没有错误。

我的项目和正确的文件夹中有 facebookSDK.framework。它是 SDK 3.1。我尝试将搜索路径添加到 /FacebookSDK 和 /FacebookSDK.framework 和 /FacebookSDK/Versions/A/Headers 等。我还尝试了 #import "FacebookSDK.framework/Versions/A/Headers/FacebookSDK.h" 并且它仍然说可以没找到。我也尝试过清理并重新启动。我有最新版本的 Xcode。

//
//  FacebookView.h
//

#import <UIKit/UIKit.h>
#import <FacebookSDK/FacebookSDK.h>

@interface FacebookView : UIViewController <FBFriendPickerDelegate>
{
}
4

17 回答 17

95

首先,您必须从您的项目中删除您的 FacebookSDK.framework。然后通过这 5 个步骤重新开始。不要重新链接框架。

  1. 转到项目目标中的构建阶段。
  2. 在 Link Binary With Libraries 中,单击“+”按钮。
  3. 单击“添加其他...”按钮
  4. 浏览您的 FacebookSDK 文件夹。一般在~/Documents/FacebookSDK/
  5. 单击(选择)“facebookSDK.framework”,然后打开。

就是这样。

于 2012-10-12T05:54:37.097 回答
24

无需删除任何东西。

在您的项目中转到:“构建设置”,然后是“<strong>搜索路径”。寻找“框架搜索路径”。你可能有这样的固定:

框架搜索路径:/Users/john/Documents/exampleappxyz

将其更改为:

框架搜索路径:$(PROJECT_DIR)

瞧!

于 2014-03-17T02:53:02.240 回答
9

我试过这个,但它对我不起作用。我必须进入项目的构建设置并手动修复 FacebookSDKFramework Search Paths以找到 FacebookSDK。

于 2013-02-27T16:00:09.903 回答
5

好的,伙计们,我想我得到了答案。请按照以下步骤操作。

  1. 将您的框架复制到您的项目中。
  2. 确保它在某个目录下。例如$(PROJECT_DIR)/project_name/Resources/Frameworks
  3. 点击目标。
  4. 转到构建阶段→将二进制文件与库链接
  5. 通过单击“添加其他”添加自定义框架
  6. 在项目导航器中验证框架只存在一次。
  7. 现在转到 Build Settings→Search Paths→Framework Search Path 并确保它具有以下两个内容。

    (一) $(inherited) (二)$(PROJECT_DIR)/project_name/Resources/Frameworks.

    不提醒framework存在Frameworks文件夹里面

  8. 确保库搜索路径中没有任何内容。
  9. 现在单击项目(目标上方)→构建设置并重复步骤 7 和 8。
  10. 现在清理项目并构建项目。

希望它有效。请记住不要保留任何带有空格的文件夹名称。如果您保留了它们,请确保提供正确的转义字符。

于 2014-10-21T21:21:03.563 回答
1

如何删除 facebook sdk 链接:

对于那些喜欢我的人不正确地添加了 facebook sdk。从您的项目中删除 facebook SDK,

检查框架文件夹中的链接,删除其中的任何 facebook sdk 链接

进入 Build Phases -> Link Binary With Libraries 并删除其中的任何 facebook sdk

右键单击框架文件夹并选择“在查找器中显示”并删除其中的任何 facebook sdk

现在按照“Fede Cugliandolo”的步骤重新添加 facebook sdk

于 2014-07-09T05:38:22.417 回答
1

我今天遇到了这个问题。

事实证明,我需要在所有三个地方都有我的框架搜索路径:

1) Project Build Settings
2) App Target Build Settings
3) UnitTests Target Build Settings

我的搜索路径是:

/Users/myusername/Documents/FacebookSDK

确保之后,错误对我来说消失了。

于 2014-10-29T07:04:52.183 回答
0

我使用 xcode 5,当添加 sdk 时,在“project.pbxproj”中写入自身地址不正确。

取而代之的是 sdk 的本地地址,它保存全局地址。

我打开“project.pbxproj”并找到它的位置并只为项目中的sdk留下地址。

<project name>/src/external/facebook
<project name>/src/external/testflight

编辑条目如下

/Users/<user Name>/myProjects/.../ios/<project name>/src/external/facebook
于 2013-10-09T11:41:14.010 回答
0

您必须在构建设置中更改属性“框架搜索路径”,并指定文件 FacebookSDK.framework 所在的位置(然后您可以使用 SRCROOT 变量指向项目目录的根目录,因此,避免使用绝对路径 ;)) 例如:

$(SRCROOT)/SampleProject/src/Utils/Facebook/

当您导入第三方框架时,这通常由 Xcode 自动完成,但有时会出现混乱(例如:当您修改项目目录树时......)

希望有帮助...

于 2013-12-09T16:59:05.393 回答
0

除了添加搜索路径之外,我还必须将路径设置为递归并从“要排除的子目录”选项中删除“* .framework”才能使其正常工作。

于 2014-02-01T02:00:24.787 回答
0

如果您两次导入 facebookSDK 并删除了一些文件,就会发生这种情况。

例如,我在 $project/framework 中导入了 facebookSDK,但由于某些原因我删除了它。然后我通过 ~/Documents/FacebookSDK 导入它,但 Xcode 默认保留旧文件夹并在其中搜索。

我必须删除旧导入的所有引用和文件才能解决我的问题。

于 2014-02-13T09:23:15.553 回答
0

我最终检查了我的项目目录,删除了对框架文件的所有旧引用。然后,将其从构建阶段/搜索路径中删除。同时删除链接的框架。重新启动 Xcode,并重新执行该过程:将 Framework 拖到 Frameworks,不要复制。检查 Build Phases/Search 路径。包括“#import”。终于奏效了。唷。

于 2014-03-06T05:19:00.127 回答
0

按照说明 在第 4 步配置您的 Xcode 项目 我认为您遗漏了一些东西。删除项目中的 Facebook.sdk 并重试。

于 2014-05-26T06:37:14.217 回答
0

我在更新 XCode 时遇到了同样的问题,但在我的情况下,我不想对项目设置进行任何手动更改,因为我使用 CMake 来创建它。你可以在这里找到我修复它的方法:https ://stackoverflow.com/a/25564152/525873

于 2014-10-20T09:37:45.733 回答
0

这很简单,您必须从您的项目中删除您的 FacebookSDK.framework。

转到项目目标中的构建阶段。在 Link Binary With Libraries 中,单击“+”按钮。单击“添加其他...”按钮浏览您的 FacebookSDK 文件夹。通常在 ~/mohit/Documents/FacebookSDK/ 点击(选择)“facebookSDK.framework”,然后打开。

现在将此目标设置 > 框架搜索路径复制到项目设置 > 框架搜索路径中。

于 2015-03-17T06:24:56.283 回答
0

以上所有答案都不适合我。

最后对我有用的是改变插件文件夹的结构:

  1. 创建文件夹:com.phonegap.plugins.facebookconnect/FacebookSDK

  2. 将所有内容从:复制 com.phonegap.plugins.facebookconnect/FacebookSDK.framework/Headerscom.phonegap.plugins.facebookconnect/FacebookSDK

  3. 复制com.phonegap.plugins.facebookconnect/Facebook.frameworkcom.phonegap.plugins.facebookconnect/FacebookSDK

最后,改变

#import <FacebookSDK/FacebookSDK.h>

#import "FacebookSDK/FacebookSDK.h"
于 2015-05-09T13:52:22.687 回答
0

我找到的唯一解决方案是:

  1. 移除 phonegap 插件: ionic plugin rm phonegap-facebook-plugin

  2. 克隆下一个插件 git clone:https ://github.com/jeduan/cordova-plugin-facebook4.git

  3. 手动添加插件:cordova -d plugin add PATH/cordova-plugin-facebook4 --variable APP_ID="*****" --variable APP_NAME="*****"

在此之前尝试重新添加 FacebookSDK.framework 并通过本地克隆安装 phonegap 插件 facebook,但错误仍然存​​在。

于 2016-03-24T01:02:43.860 回答
0

只需按照以下步骤操作:

  1. 在您的项目中打开 Xcode 的 Build Settings 选项卡。
  2. 将 ~/Documents/FacebookSDK 添加到项目的框架搜索路径设置中。
于 2016-10-18T12:05:46.330 回答