我刚刚将最新的Facebook SDK代码从Github添加到我的项目中。因为我使用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)
以下是链接器设置:
有什么想法吗?
答案 0 :(得分:2)
头版本有一些最近的更改,似乎已经破坏了ARC版本(静态库)。静态库构建正常,但是当在我的项目中使用时,我得到链接器错误。我解决问题的方法是恢复到以前版本的Facebook sdk,这些链接器错误消失了。
请参阅https://github.com/facebook/facebook-ios-sdk/commits/master
我使用了2月24日登记的版本(2月25日,对不起Jason Clark!)
https://github.com/facebook/facebook-ios-sdk/tree/9acf74345bb248d698966eac9a3057a4b4be1b0f
答案 1 :(得分:2)
2月25日提交的xcode项目中缺少FBFrictionlessRequestSettings.m,所以它不包含在静态链接库中,尽管标题是。
1.-克隆最新的回购,在本文发布时,最新的提交是:https://github.com/facebook/facebook-ios-sdk/commit/4e3567c40e3b7f8156a82f18e5a2f5cd18e077eb
2.-在src目录下打开xcode项目facebook-ios-sdk.xcodeproj
3.-在FBConnect下添加FBFrictionlessRequestSettings.m。
4.-使用项目导航器,make suer FBFrictionlessRequestSettings.m列在编译源下的构建阶段
5.-保存并关闭xcode项目
6.-运行scripts / build_facebook_ios_sdk_static_lib.sh来构建最新的静态链接库并按照安装说明操作,您应该能够编译和链接项目而不会出现任何问题。
更好的是,克隆这个repo并构建它。一切准备就绪https://github.com/alvarezm50/facebook-ios-sdk
答案 2 :(得分:1)
在构建你的fb-ios-sdk时看起来有点错误...所有up2date并且在构建静态lib时没有错误?
我在使用最新版本的SDK时没有任何问题。在模拟器或我的iOS5设备上运行。
这就是我所做的(OS X 10.7.3,Xcode 4.2.1,iOS5 ARC)
cd ~/facebook-ios-sdk/scripts/ && ./build_facebook_ios_sdk_static_lib.sh
facebook-ios-sdk
内的~/facebook-ios-sdk/lib/
文件夹,放入您的Xcode项目中:http://cl.ly/1X3B203f272z2l0w2t39&链接到Xcode中的libfacebook_ios_sdk.a
${SOURCE_ROOT}/facebook-ios-sdk
添加到您的Header Search Paths
答案 3 :(得分:1)
我已经尝试过这个程序并且能够修复它。
选择您的项目目标 - >构建阶段 - >编译源代码 从facebook静态库中添加所有.m文件也是json静态库。 现在,如果您运行应用程序,它将不会抛出任何链接器错误。
答案 4 :(得分:0)
我有同样的问题。事实证明这是相当微不足道的。我确实使用XCode对git的支持,更喜欢使用命令行。但是,这意味着我需要确保每次从git中提取时我都会添加任何新文件并删除所有已删除的文件。在这种情况下,FBFrictionlessRequestSettings。*就可以了。
File->Add Files to "My Project"
答案 5 :(得分:0)
自2/27起,这已在主人中修复。请拉主人,这应该解决这个问题。
https://github.com/facebook/facebook-ios-sdk/commit/e10bdc15b31ab23b229f1f3e77b0e8d7affe60af
谢谢!