2013-12-18 23 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のOtherリンカフラグは空であるが、DebugではGoogleAnalyticsやその他のフレームワークやライブラリのフラグが含まれていることがわかった。

他のリンカーフラグのリリース設定にフラグを追加した後、私はlibPodsを追加し、リンクのバイナリを持つライブラリセクションへのlibPods-GoogleAnalytics後、その後

library not found for -lGoogleAnalyticsServices 

を得たが、エラーは同じまま。

私はこの問題に約2日間投資しましたが、解決策は見つかりませんでした。

答えて

7

私は解決策を見つけた後、ココアポッド(libPods-GoogleAnalytics)によって生成されたライブラリを追加せず、libGoogleAnalyticsServicesをメインプロジェクトに直接リンクしました。それでも、リンカはココアポッドによって提供されているように、彼が見逃していたシンボルがすでに利用可能であったことを知っておく必要があるので、これは最も洗練された解決策ではないと私は考えている。

+0

こんにちは、スタティックライブラリをAnalyticsのcocoapodプロジェクトにリンクしても動作します。私はこれが5%良いと思う。 –

+0

@TiborUdvariどのように? – Sti

1

他のリンカーフラグ(ビルド設定)に$(継承)を追加したことを確認してください。リリースでも同じものを追加します。そうしないと、アーカイブ時に同じエラーが表示されます。 enter image description here

関連する問題