2013-12-18 66 views
12

我使用最新的cocoapods版本集成了GAI。歸因於未定義的Google Analytics(分析)的符號

當我建立在調試配置一切運行得很好。 然而,當我試圖存檔編譯器失敗的應用程序與以下消息:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_GAIDictionaryBuilder", referenced from: 
     objc-class-ref in libWLCore.a(WLTrackingHelper.o) 
    "_OBJC_CLASS_$_GAI", referenced from: 
     objc-class-ref in libWLCore.a(WLTrackingHelper.o) 
    "_kGAIScreenName", referenced from: 
     +[WLTrackingHelper trackView:] in libWLCore.a(WLTrackingHelper.o) 
     +[WLTrackingHelper resetView] in libWLCore.a(WLTrackingHelper.o) 
    "_kGAIAnonymizeIp", referenced from: 
     +[WLTrackingHelper prepareDefaultTracker:withAnonymization:withUnCaughtExceptions:withDebug:] in libWLCore.a(WLTrackingHelper.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

由於在調試工作我試圖找出其中的調試程序之間的配置差別和釋放的謊言。 我發現Release中的其他鏈接器標誌爲空,而在Debug中包含GoogleAnalytics和其他框架和庫的標誌。

添加標誌,以其他連接標誌的發佈配置後,我得到了

library not found for -lGoogleAnalyticsServices 

在那之後,我加入libPods和libPods,Google分析的鏈接二進制與圖書館節之後,但在誤差保持不變。

我在這個問題上投入了差不多2天時間,但是我找不到任何解決方案。

回答

7

經過一番搗鼓之後,我找到了解決辦法,不是添加可可豆莢(libPods-GoogleAnalytics)生成的庫,而是直接將libGoogleAnalyticsServices鏈接到我的主項目。儘管如此,我認爲這並不是最優雅的解決方案,因爲鏈接器應該知道他缺少的符號已經可用了,如cocoapods所提供的。

+0

你好,如果你將靜態庫鏈接到Analytics cocoapod項目,它也可以工作。我認爲這好像5%。 –

+0

@TiborUdvari怎麼樣? – Sti

1

請確認您已將$(繼承)添加到其他鏈接器標誌(生成設置)中,如下圖所示。在Release中也添加相同的內容,否則在歸檔時會彈出相同的錯誤。 enter image description here

相關問題