我已经在这里阅读了近50个线程,关于将框架链接到Xcode项目,但是我还没有找到一个涵盖我在Facebook上的问题的线程。受众网络框架。
我正在使用Xcode 4.2.3(我在使用OS X Lion的旧Mac上 - 不要问!),使用Facebook SDK 3.2.1为iOS 6.1构建。< / p>
我尝试在特定视图控制器中测试横幅广告格式,但是,每次构建代码时都会出现错误,完全基于教程,甚至Facebook的示例代码都不是编译。我已将FBAudienceNetwork.framework
添加到我机器上的几乎每个文件夹中,通过拖放添加,并通过Link Binary with Libraries选项添加。我试图改变框架搜索路径,但没有用。
我使用以下框架:AdSupport,StoreKit,CoreMotion,UIKit,Foundation,CoreGraphics
收到以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CAShapeLayer", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdChoicesView.o)
"_OBJC_CLASS_$_CATransaction", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o)
objc-class-ref in FBAudienceNetwork(FBAdMediumRectangleView.o)
"_OBJC_CLASS_$_NSURLSession", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o)
"_kCATransactionDisableActions", referenced from:
-[FBAdMediumRectangleView updateViewForSize:view:] in FBAudienceNetwork(FBAdMediumRectangleView.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什么建议吗?
更新:在Quartzcore.framework中添加,现在错误减少到;
架构i386的未定义符号: &#34; _OBJC_CLASS _ $ _ NSURLSession&#34;,引自: FBAudienceNetwork中的objc-class-ref(FBAdUtility.o) ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经将Foundation.framework作为可选项。构建设置armv7,armv7s,iOS 6.1,仅限模拟器。仅构建活动架构是/否。
答案 0 :(得分:1)
我是Facebook的Audience Network团队的软件工程师,我有一些可能有用的建议。
尝试添加&#34; QuartzCore.framework&#34;到你的目标。这应解决_OBJC_CLASS _ $ _ CA *链接器错误。带有&#34; CA&#34;的课程前缀是QuartzCore / Core Animation的一部分。
如果&#34; _OBJC_CLASS _ $ _ NSURLSession&#34;错误仍然出现,尝试通过设置&#34; Foundation.framework&#34;来弱连接Foundation框架。到&#34;可选&#34;在构建阶段,链接二进制文件库。
您应该能够在这些步骤之后成功构建。希望有所帮助!
答案 1 :(得分:0)
NSURLSession
。在iOS 6.0设备上运行时,在您的应用中对它的任何不正确的引用都会导致此问题。您需要使用适当的技术来确保在iOS 6.0下永远不会引用该类,或者使您的部署目标为iOS 7.0。