未find词法或预处理程序问题“FacebookSDK / FacebookSDK.h”文件
我只是通过这个文档在iOS项目中添加facebookSDK.framework : Facebook的iOS SDK开始
我已经成功构build并运行我的Xcode项目。 但是,当我复制我的源代码,并在错误即将到来时在另一台PC上运行它“未find词法或预处理程序问题”FacebookSDK / FacebookSDK.h文件“
我也在我的项目的资源添加facebookSDK.framework并再试一次,但没有解决它。
那么,请告诉我如何在其他地方运行这个项目。
我有一个非常类似的问题,但在我的情况下,它是与amazon web servicesSDK而不是Facebook SDK。 对我来说,问题原来与我的框架加载path有关。
解决scheme:转到Xcode中的“构build设置”,并在“searchpath”下有一个“框架searchpath”项目。 双击它并添加一个新的searchpath: .
并使其recursion。 清理和build立。
这假定您的框架存储在您的项目目录中的某个地方。 如果不是,则根据需要更改新的searchpath。
我有这个问题,并通过这样做来解决它:
- 从你的项目中删除FacebookSDK框架。
- 从Build Settings中的“Framework Search Paths”和“Header Search Paths”中删除对Facebook SDK的任何引用(请注意,这个设置同时存在于'Project'和'Target'下,所以在两个地方清除它们)
- 清理你的项目,保存并退出。
- 重新启动您的项目。
- 拖放到您的项目中,重新添加Facebook SDK框架。
- 编译。 在这一点上,它是固定的我。
在我的情况下,我做了类似于你的事情(有一点是不同的),它为我工作。 步骤如下:
-
进入FacebookSDK目录,selectFacebookSDK.framework,点击右键,然后按获取信息,然后复制文件path(如:/ Users / macbook / Documents / FacebookSDK)
-
转到Xcode中的“构build设置”,在“searchpath”下有一个“框架searchpath”项目。 双击它并粘贴刚刚复制的文件path。
-
请注意,在“项目”和“目标”下都存在此设置,因此请将其粘贴到两个位置。
-
清理项目并build立。 这一次它应该工作。
我对词法或预处理程序问题的解决scheme – 找不到文件错误,如下所示:
转到Xcode => Project Target => Build Settings =>searchpath
然后在框架searchpath和库searchpath中插入以下path,在此path中使用您自己的项目名称:“$ {SRCROOT} //项目名称/ facebookSDK / framework”
我通过将DeprecatedHeaders
文件夹从Facebook SDK(它位于FacebookSDK/Versions/Current
)拖动到FacebookSDK.framework
旁边的Frameworks
文件夹中解决了此错误消息。
添加searchpath的所有方式(包括上面提到的)都没有帮助,Mr_bem的帮助也没有帮助 – .m
文件已经存在于“编译源代码”
这可能不会直接帮助OP的问题,但可能希望帮助像我这样的人。
在我的情况下,问题是与MillenialMedia SDK:
未find词法或预处理程序问题“MillennialMedia / MMSDK.h”文件
这是通过从项目中删除SDK框架,将框架移动到项目的顶级文件夹(存储在.xcodeproj文件中)来解决的。 然后在构build阶段添加框架到项目。
有时你需要重新下载SDK档案格式的官方网站(如果它被损坏或类似的东西)。 在我的情况下,它是在将我的项目从办公室计算机推到远程存储库并从家用计算机中取出之后发生的。
删除框架
将framevorks从内部文件夹移动到顶级Project文件夹(相同的文件夹,您的.xcodeproj文件的存储位置
将框架添加回项目
- 点击xcode中文件浏览器中的蓝色图标(顶部带有项目名称)
- 点击目标,然后build立阶段。
- 展开编译源。
- 在那里添加你的Facebook.m文件。
这应该做到这一点。
如果没有,只需清理你的项目(command + shift + k),然后重新添加框架(Y)。
如果您还有其他问题,请询问; D
我有同样的问题。 也许你用tortoiseSVN(Windows)来检查源代码。
这是我的问题:
Mac =>提交源代码=> Window => checkout source =>从窗口复制到Mac =>编译=>错误。
解决scheme:使用svn for Mac来检出来源。
当我遇到这个问题时,我发现项目回来了,但是当我试图运行它的时候,我得到了错误。 如果我注意到了facebook.h文件,那么它只是切换到我的前缀文件中的下一个文件,仍然创build错误。
我准备开始更改构build设置和searchpath,但决定closures所有的Xcode项目,并重新启动它为我工作。
写这似乎是太明显的东西尝试,但一旦出现错误,我到了stackoverflow并尝试上面提出的答案。 我的情况可能是罕见的,独特的,但绝对重新启动和closures一切,因为它只需要10秒,为我工作。
在我的情况下,它是Xcode和F *** ing东西的可爱function:)
解决scheme:转到Xcode中的“构build设置”,并在“searchpath”下有一个“框架searchpath”项目。 确保在引号之前没有斜杠,通常在Xcode上通过“添加文件到…”添加框架时添加斜杠。 如果您在报价前看到斜线,请将其删除。 例:
\"
应该
"
好吧,我想我得到了答案。 按照下面的步骤。
- 将你的框架复制到你的项目中。
- 确保它在某个目录下。 例如:$(PROJECT_DIR)/ PROJECT_NAME /资源/框架
- 点击目标。
- 转到
Build Phases->Link binary with Libraries
- 点击
"Add Other"
添加自定义框架 - 在项目导航器中validation框架只存在一次。
- 现在转到
Build Settings->Search Paths->Framework Search Path
,并确保它有以下两件事情。
(a)$(inheritance)
(b)$(PROJECT_DIR)/ project_name / Resources / Frameworks。
不要提醒“框架”文件夹里面存在框架
- 确保库searchpath中没有任何内容。
- 现在点击项目(目标上方) – >build立设置并重复步骤7和8。
- 现在清理项目并build立项目。
希望它的作品。 请记住不要使用空格保留任何文件夹名称。 如果你保留了它们,请确保你提供了正确的转义字符。
我有同样的问题,并在我的情况下找出这个错误的原因是因为有多个“FacebookSDK.framework”可以在“框架searchpath”中find。
您可以检查项目中的所有“框架searchpath”,并确保Xcode只能在这些path中find一个“facebookSDK.framework”。
框架searchpath和标题searchpath中的值最初与其他人在此提到的相同。
我检查手动链接到库的拖动到Xcode。 FB SDK的库也已经出现了。
问题出在下载的SDK的文件夹名称
我将其重命名为FacebookSDK并启动并运行了我的应用程序
如果你使用这个命令行的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插件。
vote539是正确的,但…
Blockquote转到Xcode中的“构build设置”,在“searchpath”下有一个“框架searchpath”项目。
然后双击“框架searchpath”的当前path。
将出现一个窗口。 对于项目$(PROJECT_DIR)/ yourAppName,从recursion更改为recursion。
问题的原因是你把你的框架放在一个子目录中,而不是他们在根目录下。