' FacebookSDK / FacebookSDK.h'文件未找到

时间:2014-07-08 08:11:08

标签: ios facebook cordova

我已经安装了phonegap-facebook-plugin 的最新版本 但是当我构建项目时,我收到了以下错误消息。 我尝试了stackoverflow和其他网站上提到的许多解决方案,没有任何积极的结果。

com.phonegap.plugins.facebookconnect/FacebookConnectPlugin.m:11:
Et3arrafApp/Plugins/com.phonegap.plugins.facebookconnect/FacebookConnectPlugin.h:11:9: fatal error:
      'FacebookSDK/FacebookSDK.h' file not found
#import <FacebookSDK/FacebookSDK.h>
        ^
1 error generated.

** BUILD FAILED **


The following build commands failed:
    CompileC build/Et3arrafApp.build/Debug-iphonesimulator/Et3arrafApp.build/Objects-normal/i386/FacebookConnectPlugin.o Et3arrafApp/Plugins/com.phonegap.plugins.facebookconnect/FacebookConnectPlugin.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Error: /Users/apple/Desktop/et3arraf/platforms/ios/cordova/build: Command failed with exit code 65
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:753:16)
    at Process.ChildProcess._handle.onexit (child_process.js:820:5)

3 个答案:

答案 0 :(得分:12)

我今天遇到了同样的问题。

目前使用插件寄存器安装此插件不起作用(对于iOS)。

您必须将存储库(phonegap-facebook-plugin)克隆到本地文件系统,例如$HOME/src/phonegap-facebook-plugin。然后安装指向该路径的插件,例如cordova plugin add $HOME/src/phonegap-facebook-plugin ...

事实证明,在通过插件注册表获取时,FacebookSDK.framework未正确安装。它应该是这样的:

$ ls -l plugins/com.phonegap.plugins.facebookconnect/platforms/ios/FacebookSDK.framework/
total 24
lrwx------  1 mjl  staff   24 Aug 15 15:23 FacebookSDK -> ./Versions/A/FacebookSDK
lrwx------  1 mjl  staff   20 Aug 15 15:23 Headers -> ./Versions/A/Headers
lrwx------  1 mjl  staff   22 Aug 15 15:23 Resources -> ./Versions/A/Resources
drwx------  4 mjl  staff  136 Aug 15 15:23 Versions

但是通过插件注册表安装时没有保留符号链接......但是从本地文件系统安装时会保留它们。

答案 1 :(得分:1)

我通过使用--save选项安装插件解决了这个问题。

在我的情况下,我已将插件下载到我的电脑,我所做的是:

cordova plugin add --save <my downloaded plugin directory> --variable APP_ID=<app_id> --variable APP_NAME=<app_name>

所需文件将与@ {mjl ls -l plugins/com.phonegap.plugins.facebookconnect/platforms/ios/FacebookSDK.framework/

的结果相同

P / S:如果您使用的是iTerm,您可以将文件夹拖到iTerm终端,并自动输入完整的目录路径。

答案 2 :(得分:-2)

在网上搜索越来越多后,我尝试重新创建Headers,FacebookSDK和Resources的sym链接并解决了

ln -s ./Versions/A/Headers Headers

等等