1

現在、Flurry AppCircle Ads を iPhone アプリケーションに AdMob Mediation と統合しています。私はiOS 6向けに開発しています。

ここからFlurryの統合手順に従ってきましたが、最終的にプロジェクトはコンパイルさえしません。必要なすべてのフレームワークは、AdMob メディエーション用のアダプターと一緒にリンクされています。

スローされるエラーは次のとおりです。

    Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_FlurryDataSenderBase", referenced from:
      _OBJC_CLASS_$_AdLogManager in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurryDataSenderBlockInfo", referenced from:
      objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurryImpl", referenced from:
       objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurrySharedData", referenced from:
      objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_METACLASS_$_FlurryDataSenderBase", referenced from:
      _OBJC_METACLASS_$_AdLogManager in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    ld: symbol(s) not found for architecture i386

-ObjC他のリンカー フラグからフラグを削除すれば、これらのエラーを回避でき、アプリをビルドできることがわかりましたが、このフラグは非常に重要です。そうしないと、広告がリクエストされたときに AdMob メディエーションが実行時にエラーをスローします。

    -[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xc9cc000

どんな助けでも大歓迎です。

4

1 に答える 1

2

もうお気づきかもしれませんが、メインの Flurry SDK と Flurry Ads SDK のバージョンが一致していない場合にのみ、このエラーが表示されました。具体的には、Ads SDK の最新バージョン (4.2.0) を既存のこのプロジェクトはすでにメインの Flurry SDK を使用していましたが、後者の更新を怠っていたため、バージョン 4.0.0 のままでした。

Flurry SDK のコピーを更新すると、リンケージの問題がなくなりました。

そのヒントに従って、4.2.0 の libFlurry.a を調べたところ、_OBJC_CLASS_$_FlurryDataSenderBlockInfo などのシンボルが定義されていることがわかりました。したがって、それに対してリンクしている場合は、シンボルを定義する必要があります。

だから私はどちらかと言います:

  • libFlurry.a に対してまったくリンクしていません。また
  • 古いバージョンの libFlurry.a に対してリンクしています。
于 2013-05-02T19:52:24.550 に答える