6

我正在构建一个使用最新 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)

关于如何让这两个库很好地结合在一起的任何想法?一个库想要这些标志,而另一个库不会在设置这些标志的情况下构建。

4

2 回答 2

27

您是否已将社交和帐户框架添加到您的项目中?

于 2013-01-03T04:49:44.877 回答
5

在 Targets、General、Linked Frameworks 和 Libraries 下添加:

Social.framework 和 Accounts.framework

于 2015-02-06T08:32:10.960 回答