未找到词法或预处理器问题'FacebookSDK / FacebookSDK.h'文件

时间:2013-11-19 07:31:37

标签: ios objective-c facebook-graph-api xcode5 facebook-sdk-3.0

我只是通过此文档在ios项目中添加 facebookSDK.framework Getting Started with the Facebook SDK for iOS

我已经成功构建并运行了我的Xcode项目。但是当我复制我的源代码并在另一台PC上运行它后,错误即将来临 “未找到Lexical或Preprocessor Issue'FacebookSDK / FacebookSDK.h'文件”

我还在我的项目资源中添加了 facebookSDK.framework ,然后再试一次,但没有解决。

所以,请告诉我如何在其他地方运行这个项目。

15 个答案:

答案 0 :(得分:31)

我有一个非常类似的问题,但就我而言,它是使用Amazon Web Services SDK而不是Facebook SDK。对我来说,问题结果与我的框架加载路径有关。

解决方案:转到Xcode中的“构建设置”,在“搜索路径”下有一个“框架搜索路径”项。双击它并添加一个新的搜索路径:.并使其递归。清洁和建设。

这假设您的框架存储在项目目录中的某个位置。如果没有,请根据需要更改新的搜索路径。

答案 1 :(得分:4)

我遇到了这个问题并通过这样做来修复它:

  1. 从项目中删除FacebookSDK框架。
  2. 从“框架”中删除对Facebook SDK的任何引用 在构建设置中搜索路径“和”标题搜索路径“(请注意 此设置存在于“项目”和“目标”下,因此请将其清除 来自两个地方)
  3. 清理项目,保存并退出。
  4. 重新启动您的项目。
  5. 通过拖入您的项目重新添加Facebook SDK框架。
  6. 编译。在这一点上,它对我来说是固定的。

答案 2 :(得分:3)

在我的情况下,我做了类似于你的事情(有一点是不同的),它对我有用。步骤如下:

  1. 转到FacebookSDK目录,选择FacebookSDK.framework,右键单击并按下获取信息,然后复制文件路径。(例如:/ Users / macbook / Documents / FacebookSDK)

  2. 转到"构建设置"在Xcode中,以及"搜索路径"有一个"框架搜索路径"项目。双击它并粘贴刚刚复制的文件路径。

  3. 请注意,此项设置同时存在于'项目'和'目标',所以将它粘贴在两个地方。

  4. 清理项目并构建。这次它应该工作。

答案 3 :(得分:2)

我对Lexical或Preprocessor问题的解决方案 - 找不到文件错误,如下所示:

转到Xcode =>项目目标=>构建设置=>搜索路径

然后在此路径中使用您自己的项目名称在框架搜索路径和库搜索路径中插入以下路径: “$ {SRCROOT} //项目名称/ facebookSDK / framework”

答案 4 :(得分:1)

我通过将DeprecatedHeaders文件夹从Facebook SDK(它位于FacebookSDK/Versions/Current)拖到Frameworks旁边的FacebookSDK.framework文件夹中解决了此错误消息。< / p>

添加各种搜索路径(包括上面建议的.)没有帮助,Mr_bem的答案也没有帮助 - .m文件已经存在于“编译源”

这可能无法直接帮助OP的问题,但可能有希望帮助像我这样的人。

答案 5 :(得分:1)

就我而言,问题出在MillenialMedia SDK上:

  

词法或预处理器问题'MillennialMedia / MMSDK.h'文件没有   结果

它是通过从项目中删除SDK框架,将框架移动到Project的顶级文件夹(存储.xcodeproj文件)来解决的。然后在Build Phases中将Frameworks添加到Project。

有时您需要重新下载官方网站的SDK存档(如果它已损坏或类似的东西)。在我的情况下,这是在将我的项目从办公室计算机推送到远程存储库并从家用计算机中拉出之后发生的。

删除框架 Removing frameworks

将framevorks从内部文件夹移动到顶级Project文件夹(相同文件夹,存储.xcodeproj文件 Moving framevorks from inner folder to top-level Project folder

将框架添加回项目 Adding frameworks back to the project

答案 6 :(得分:0)

  • 点击xcode中文件浏览器中的蓝色图标(带有项目名称的顶部图标)
  • 点击目标,然后构建阶段。
  • 展开编译源。
  • 在那里添加您的Facebook.m文件。

应该这样做。

如果没有,只需清理你的项目(命令+ shift + k),然后重新添加框架(Y)。

如果您还有其他问题,请询问; D

答案 7 :(得分:0)

我有同样的问题。也许你使用tortoiseSVN(windows)来检查源代码。

这是我的问题:

Mac =&gt; submit source =&gt; Window =&gt; checkout source =&gt;将源从窗口复制到Mac =&gt; compile =&gt;错误。

解决方案:使用svn for Mac来结帐。

答案 8 :(得分:0)

在我的情况下,它是Xcode及其可爱的F ***东西:)

解决方案:转到Xcode中的“构建设置”,在“搜索路径”下有一个“框架搜索路径”项。确保在引号之前没有斜杠,这通常是在通过Xcode上的“Add files to ...”添加框架时添加的。 如果在引号前看到斜杠,请将其删除。 例如:

\"

应该是

"

答案 9 :(得分:0)

当我遇到这个问题时,我发现项目恢复干净,但是当我试图运行它时,我收到了错误。如果我注释掉了facebook.h文件,那么它只是切换到我的前缀文件中的下一个文件,但仍然创建了错误。

我已准备好开始更改构建设置和搜索路径,但决定关闭所有Xcode项目并首先重新启动它,这对我有用。

写这个似乎是一件非常明显的事情,但是一旦出现错误,我就会进入stackoverflow并尝试上面建议的答案。我的情况可能是罕见且独特的,但肯定会尝试重新启动并关闭所有内容,因为它只需要10秒钟并为我工作。

答案 10 :(得分:0)

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

  1. 将您的框架复制到您的项目中。
  2. 确保它位于某个目录下。 e.g。$(PROJECT_DIR)/ PROJECT_NAME /资源/框架
  3. 点击目标。
  4. 转到Build Phases->Link binary with Libraries
  5. 点击"Add Other"
  6. 添加自定义框架
  7. 在项目导航器中验证框架只存在一次。
  8. 现在转到Build Settings->Search Paths->Framework Search Path并确保它具有以下两项内容。
  9. (a)$(继承)
    (b)$(PROJECT_DIR)/ project_name / Resources / Frameworks。

    不提醒框架内存在&#34;框架&#34;夹

    1. 确保库搜索路径中没有任何内容。
    2. 现在点击项目(目标上方) - &gt;构建设置并重复步骤7和8.
    3. 现在清理项目并构建项目。
    4. 希望它有效。 请记住不要将任何文件夹名称保留为空格。如果你保留了它们,请确保提供正确的转义字符。

答案 11 :(得分:0)

我有同样的问题,在我的情况下找出这个错误的原因是因为 多了一个“facebookSDK.framework” 可以在“框架搜索路径“。

您可以检查项目中的所有“框架搜索路径”,并确保Xcode只能在这些路径中找到一个“facebookSDK.framework”。

答案 12 :(得分:0)

框架搜索路径标题搜索路径中的值最初与其他人提到的值相同。

我检查了通过将库拖动到Xcode手动链接库。 FB SDK的库也已经存在。

问题在于下载SDK的文件夹名称

我将其重命名为 FacebookSDK ,并启动并运行了我的应用

答案 13 :(得分:0)

如果您在IOS上使用此命令行作为facebook插件

(start_ind..end_ind).each do |index|
  foo(ar[index])
  # maybe more code
end

你在框架中看到了FacebookSDK.framework但你无法扩展它。 返回并使用 cordova -d plugin add /path/to/cloned/phonegap-facebook-plugin --variable APP_ID="123456789" --variable APP_NAME="myApplication" 然后 cordova plugin remove phonegap-facebook-plugin然后重新添加facebook插件。

答案 14 :(得分:-1)

vote539是正确的,但是......

  

Blockquote转到Xcode中的“Build Settings”,在“Search Paths”下面有一个“Framework Search Paths”项。

然后双击“框架搜索路径”的当前路径。

会出现一个窗口。对于项目$(PROJECT_DIR)/ yourAppName,从递归更改为递归。

问题的原因是您将框架放在子目录中,而不是在根目录中。