【问题标题】:Lexical or Preprocessor Issue 'FacebookSDK/FacebookSDK.h' file not found找不到词法或预处理器问题“FacebookSDK/FacebookSDK.h”文件
【发布时间】:2013-12-02 15:48:24
【问题描述】:

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

我已经按照它成功构建并运行了我的 Xcode 项目。但是当我复制我的源代码并在另一台 PC 上运行它时,出现以下错误 "找不到词法或预处理器问题 'FacebookSDK/FacebookSDK.h' 文件"

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

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

【问题讨论】:

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


【解决方案1】:

我有一个非常相似的问题,但在我的情况下是使用 Amazon Web Services SDK 而不是 Facebook SDK。对我来说,问题原来与我的框架加载路径有关。

解决方案:在Xcode中进入“Build Settings”,在“Search Paths”下有一个“Framework Search Paths”项。双击它并添加一个新的搜索路径:. 并使其递归。清理并构建。

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

【讨论】:

  • 这个答案对我有用,但应该被视为临时解决方案,因为我在 Xcode 4 中遇到了这个问题,但在 Xcode 6 中没有,所以苹果似乎修复了它(我没有 Xcode 5安装)。 Xcode 在缓存方面有很多问题,所以通常最好的方法是 1) 从项目中删除有问题的项目 2) 清理 3) Organizer->Project->Delete Derived Data 4) 退出 Xcode 5) 重新启动 Xcode 并重新添加项目。
  • 这在版本 6.2 (6C121) 中似乎也有帮助。
  • 太棒了..也帮了我
【解决方案2】:

我遇到了这个问题并通过这样做解决了它:

  1. 从您的项目中删除 FacebookSDK 框架。
  2. 从您的“框架”中删除对 Facebook SDK 的所有引用 构建设置中的“搜索路径”和“标题搜索路径”(注意 此设置同时存在于“项目”和“目标”下,因此请清除它 从两个地方)
  3. 清理您的项目,保存并退出。
  4. 重新启动您的项目。
  5. 通过拖入您的项目重新添加 Facebook SDK 框架。
  6. 编译。在这一点上,它已经为我解决了。

【讨论】:

  • 对我来说 - 我已将 sdk 包含在一个 mercurial 存储库中。似乎按照上面的这些步骤但也恢复到 Documents/Facebook SDK 而不是我的项目文件夹已经解决了问题。
  • 我也不必执行第 2 步。
【解决方案3】:

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

  1. 进入 FacebookSDK 目录,选择 FacebookSDK.framework,右键单击并按获取信息,然后复制文件路径。(类似于:/Users/macbook/Documents/FacebookSDK)

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

  3. 请注意此设置同时存在于“项目”和“目标”下,因此请将其粘贴到这两个位置。

  4. 清理项目并构建。这次应该可以了。

【讨论】:

  • 昨天花了一整天的时间敲我的头。今天早上来,发现这个,完全一样,解决了。非常感谢你的救命稻草。
【解决方案4】:

我对 Lexical or Preprocessor Issue - file not found 错误的解决方案如下:

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

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

【讨论】:

    【解决方案5】:

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

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

    这可能不会直接帮助解决 OP 的问题,但可能会帮助像我这样的其他人。

    【讨论】:

      【解决方案6】:

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

      词汇或预处理器问题“MillennialMedia/MMSDK.h”文件不 找到了

      通过从项目中删除 SDK 框架,将框架移动到项目的顶级文件夹(存储 .xcodeproj 文件的位置)来解决此问题。然后在构建阶段将框架添加到项目中。

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

      删除框架

      将 framevorks 从内部文件夹移动到顶级项目文件夹(存储 .xcodeproj 文件的同一文件夹

      将框架添加回项目

      【讨论】:

        【解决方案7】:
        • 在 xcode 中的文件浏览器中单击蓝色图标(顶部有您的项目名称)
        • 点击目标,然后构建阶段。
        • 扩展编译源代码。
        • 在此处添加您的 Facebook.m 文件。

        应该可以的。

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

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

        【讨论】:

        • 我在项目中没有任何 Facebook.m 文件。我在项目中添加 FacebookSDK.Framework。
        【解决方案8】:

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

        这是我的问题:

        Mac => 提交源代码 => 窗口 => 签出源代码 => 将源代码从窗口复制到 Mac => 编译 => 错误。

        解决方案:使用 svn for Mac 来检查源代码。

        【讨论】:

          【解决方案9】:

          当我遇到这个问题时,我发现项目恢复正常,但是当我尝试运行它时,我得到了错误。如果我注释掉了 facebook.h 文件,那么它只是切换到我的前缀文件中的下一个文件,仍然会产生错误。

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

          写这篇文章似乎太明显了,但一旦出现错误,我就进入了 stackoverflow 并尝试了上面建议的答案。我的情况可能很少见且很独特,但一定要先尝试重新启动并关闭所有内容,因为它只需要 10 秒并且对我有用。

          【讨论】:

            【解决方案10】:

            在我的例子中,它是 Xcode 及其有趣的功能:)

            解决方案:在Xcode中进入“Build Settings”,在“Search Paths”下有一个“Framework Search Paths”项。确保引号前没有斜线,通常在通过 Xcode 上的“将文件添加到...”添加框架时添加。 如果您在引号前看到斜杠,请将其删除。 示例:

            \"
            

            应该是

            "
            

            【讨论】:

              【解决方案11】:

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

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

              (a) $(继承的)
              (b) $(PROJECT_DIR)/project_name/Resources/Frameworks。

              不提醒框架存在于“Frameworks”文件夹内

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

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

              【讨论】:

                【解决方案12】:

                我遇到了同样的问题,在我的案例中发现了这个错误的原因是因为在“框架搜索路径”。

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

                【讨论】:

                  【解决方案13】:

                  Framework Search PathsHeader Search Paths 中的值最初与其他人在此处提到的相同。

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

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

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

                  【讨论】:

                    【解决方案14】:

                    如果你在 IOS 上使用这个命令行来安装 facebook 插件

                     cordova -d plugin add /path/to/cloned/phonegap-facebook-plugin --variable APP_ID="123456789" --variable APP_NAME="myApplication"
                    

                    您在框架中看到 FacebookSDK.framework,但无法扩展它。 然后返回并使用cordova plugin remove phonegap-facebook-plugin git clone https://github.com/Wizcorp/phonegap-facebook-plugin.git 然后重新添加facebook插件。

                    【讨论】:

                      【解决方案15】:

                      vote539 是正确的,但是...

                      Blockquote 进入Xcode中的“Build Settings”,在“Search Paths”下有一个“Framework Search Paths”项。

                      然后双击“Framework Search Paths”的当前路径。

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

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

                      【讨论】:

                      • 从递归变为递归,您如何理解这种变化?哈哈
                      猜你喜欢
                      • 2014-08-28
                      • 1970-01-01
                      • 2018-02-16
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-06-11
                      • 2012-03-30
                      • 2022-08-08
                      相关资源
                      最近更新 更多