我正在构建一个使用最新Facebook SDK(v3.1)和Windows Azure iOS Toolkit SDK的应用程序。
现在Azure SDK需要将-all_load和-ObjC标志添加到Build Settings中的“Other Linker Flags”参数。当链接到包含类别的Objective-C静态库时,这是修复已知错误所必需的(请参阅http://developer.apple.com/library/mac/#qa/qa1490/_index.html)。如果没有此设置,Azure SDK会在调用某些方法时生成“未识别选择器”的运行时异常。很好,问题解决了。
但是,Facebook SDK不会在设置这些标志的情况下构建。它在构建时会生成以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SLComposeViewController", referenced from:
objc-class-ref in FacebookSDK(FBNativeDialogs.o)
"_SLServiceTypeFacebook", referenced from:
+[FBNativeDialogs composeViewControllerWithSession:handler:] in
FacebookSDK(FBNativeDialogs.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
关于如何让这两个库很好地一起玩的任何想法?一个库需要标志,另一个库不会使用这些标志进行构建。
答案 0 :(得分:27)
您是否已将社交和帐户框架添加到项目中?
答案 1 :(得分:5)
在目标,常规,链接框架和库下添加:
Social.framework和 Accounts.framework