Ios 链接器使用Facebook SDK生成项目时出错

Ios 链接器使用Facebook SDK生成项目时出错,ios,facebook,Ios,Facebook,我刚刚将Github的最新Facebook SDK代码添加到我的项目中。因为我使用的是ARC,所以我使用他们提供的shell脚本来构建静态库。我将其添加到我的项目中,并确保正在链接静态库,但我收到以下链接器错误: Undefined symbols for architecture i386: "_OBJC_CLASS_$_FBFrictionlessRequestSettings", referenced from: objc-class-ref in libfacebook_

我刚刚将Github的最新Facebook SDK代码添加到我的项目中。因为我使用的是ARC,所以我使用他们提供的shell脚本来构建静态库。我将其添加到我的项目中,并确保正在链接静态库,但我收到以下链接器错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_FBFrictionlessRequestSettings", referenced from:
      objc-class-ref in libfacebook_ios_sdk.a(Facebook.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
以下是链接器设置:


有什么想法吗?

在构建fb ios sdk时看起来有点不对劲…一切都是假的,构建静态库时没有错误吗

我可以在模拟器或iOS5设备上安装并运行最新版本的SDK

下面是我在OSX10.7.3、Xcode 4.2.1和iOS5上所做的

获取最新的源文件: 解压文件并编译cd~/facebook ios sdk/scripts/&.&build\u facebook\u ios\u sdk\u static\u lib.sh 现在抓取~/facebook ios sdk/lib/中的facebook ios sdk文件夹,将其放入您的Xcode项目文件夹中,如下所示:&链接到Xcode中的libfacebook\u ios\u sdk.a 将${SOURCE\u ROOT}/facebook ios sdk添加到标题搜索路径
head修订版有一些最近的更改,这些更改似乎破坏了ARC builds静态库。静态库构建正常,但是当在我的项目中使用时,我得到链接器错误。我所做的是修复问题,恢复到以前版本的Facebook sdk,这些链接器错误消失了

我使用的是2月24日登记的版本,不是2月25日,对不起,杰森·克拉克


2月25日提交的xcode项目中缺少FBFrictionlessRequestSettings.m,因此即使标头为空,它也不包括在静态链接库中

1.-克隆最新的回购协议,在此发布时,最新的提交是:

2.-在src目录下打开xcode项目facebook-ios-sdk.xcodeproj

3.-在FBConnect下添加FBFrictionlessRequestSettings.m

4.-使用项目导航器,使suer FBFrictionlessRequestSettings.m在编译源代码下的构建阶段中列出

5.-保存并关闭xcode项目

6.-运行scripts/build\u facebook\u ios\u sdk\u static\u lib.sh来构建最新的静态链接库并遵循安装说明,您应该能够编译并链接您的项目,而不会出现任何问题


更妙的是,克隆这个回购协议并构建它。一切就绪

我也有同样的问题。结果证明它相当微不足道。我确实使用XCode对git的支持,更喜欢使用命令行。然而,这意味着我需要确保每次从git中提取时,我也会添加任何新文件并删除所有已删除的文件。在本例中,FBFrictionlessRequestSettings.*完成了该操作


文件->将文件添加到我的项目中

我已经尝试了这个过程,并且能够修复它

选择项目目标->构建阶段->编译源代码 添加facebook静态库和json静态库中的所有.m文件。
现在,如果您运行该应用程序,它不会抛出任何链接器错误。

这已在master中于2月27日修复。请拉动主机,这样可以解决此问题


谢谢

你说得对。如果我看过提交历史,我可能也会这么做——深夜。谢谢我还是有同样的错误……你能说得更具体一点吗?我使用的导入命令是什么?我是导入所有的.h文件还是只导入一个.a文件?我尝试过这样做,但它告诉我:import FBConnect.h行无法执行。。。。此外,如果我试图将所有.h文件从facebook ios sdk文件夹复制到我的项目中,它会给我以下错误:架构i386的未定义符号:_OBJC_CLASS_$\u fBfFrictionlessRequestSettings,引用自:libfacebook_ios_sdk.aFacebook.o ld:未找到架构i386的符号clang:错误:链接器命令失败,退出代码为1使用-v查看调用您对libfacebook_ios_sdk.a的链接是什么意思?选择活动目标,然后选择buildphases->linkbinary With Libraries->+->addother…并选择libfacebook\u ios\u sdk.a