2015-02-08 145 views
0

我已經閱讀了近50個關於這方面的主題,關於將框架鏈接到Xcode項目,但我還沒有找到一個涵蓋了一個問題, m擁有Facebook的受衆網絡框架。未定義的架構i386符號:Facebook Audience Network(需要幫助!)

我正在使用Xcode 4.2.3(我在OS X Lion的舊Mac上 - 不要問!),使用Facebook SDK 3.2.1構建iOS 6.1。

我試圖測試特定視圖控制器中的橫幅廣告格式,但是,每次構建代碼時都會收到錯誤,完全基於教程,甚至Facebook的示例代碼也沒有編譯。我已將FBAudienceNetwork.framework添加到我機器上的幾乎每個文件夾,通過拖放添加以及通過鏈接二進制與庫選項添加。我試圖改變框架搜索路徑,無濟於事。

我用下面的框架:AdSupport,StoreKit,CoreMotion,UIKit中,基金會,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硬件架構

未定義的符號: 「_OBJC_CLASS _ $ _ NSURLSession」,從引用: objc級-REF在FBAudienceNetwork(FBAdUtility.o)​​ LD:找不到架構i386的符號(S) 鐺:錯誤:鏈接器命令失敗,退出代碼1(使用-v查看調用)

我已經使Foundation.framework爲可選。構建設置armv7,armv7s,iOS 6.1,僅限Simulator。僅建立主動架構是/否。

+0

在模擬器和設備上運行時是否收到這些錯誤?你有沒有檢查過框架是否包含在項目中?檢查TargetSettings - >構建階段 - >編譯源 - >鏈接庫與二進制文件 - > FacebookAudienceNetwork.framework。你正在運行哪個iOS版本? – 2015-02-09 04:33:44

+0

我只在模擬器上運行此刻。構建設置; armv7 armv7s;構建活動架構是/否。所有框架都包含在項目中。 – Chris 2015-02-09 19:22:41

回答

1

我是Facebook上的Audience Network團隊的軟件工程師,我有一些可能有所幫助的建議。

嘗試添加「QuartzCore.framework」到您的目標。這應該解決_OBJC_CLASS _ $ _ CA *鏈接器錯誤。帶有「CA」前綴的類是QuartzCore/Core Animation的一部分。

如果仍然出現「_OBJC_CLASS _ $ _ NSURLSession」錯誤,請嘗試在構建階段中將Foundation Foundation框架設置爲「可選」,從而弱化Foundation框架,鏈接二進制文件與庫。

您應該能夠在這些步驟之後成功構建。希望有所幫助!

+0

嗨Erika, 感謝您的幫助。 我已經添加了QuartzCore。框架到項目,並且這清除了三個CA *鏈接器錯誤,但NSURLSessio錯誤仍然出現。 我已經弱聯繫基金會框架,但錯誤仍然出現; 爲i386硬件架構未定義符號: 「_OBJC_CLASS _ $ _ NSURLSession」,從引用: objc級-REF IN FBAudienceNetwork(FBAdUtility.o)​​ LD:符號(多個)未找到i386硬件架構 鐺:錯誤:連接器命令退出代碼1失敗(使用-v查看調用) 其他建議? 再次感謝! – Chris 2015-02-09 19:02:07

+0

我沒有找到一個很好的解決方案,沒有明顯的缺點。嘗試使用SDK 3.19附帶的受衆網絡版本(https://developers.facebook.com/docs/ios/downloads)。 – 2015-02-10 03:48:48

+0

SDK 3.23.1剛剛發佈,其中包括對此的修復。試試看,並讓我知道! – 2015-02-25 00:06:46

0

NSURLSession已添加到iOS 7.0。在iOS 6.0的設備上運行時,在您的應用中對其進行任何不當引用都會導致此問題。您需要使用適當的技術來確保在iOS 6.0下不會引用該類,或者使您的部署適用於iOS 7.0。

+0

謝謝丹。鑑於我在使用OS X Lion的Mac上,因此無法升級到Xcode 5或更高版本(支持構建到iOS 7.0) - 關於如何確保從未引用該類的任何建議? – Chris 2015-02-09 22:27:56

相關問題