0

1 つの iOS アプリに Admob メディエーションを実装しようとしています。プロジェクトをビルドしているときに InMobi と統合しているときに、このエラーが発生します

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_IMCommonUtil", referenced from:
      objc-class-ref in libAdapterInMobi.a(GADInMobiExtras.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

助けてください

4

3 に答える 3

3

プロジェクトに InMobi Commons ライブラリ ( libInMobiCommons ) を含めていませんか?

InMobi iOS AdNetwork バンドル: (http://developer.inmobi.com/wiki/index.php?title=InMobi_SDK_3.6.0_for_iOS#Getting_Started)

IMAdDelegate.h
IMAdError.h
IMAdInterstitial.h
IMAdInterstitialDelegate.h
IMAdRequest.h
IMAdView.h
IMCommonUtil.h
libInMobiAdNetwork-3.6.0.a
libInMobiCommons-3.6.0.a
于 2012-10-15T06:14:15.253 に答える
1

ライブラリで lipo -detailed_info を実行すると、次のアーキテクチャ (armv7、armv7(s)、および i386) のビルドが示されます。アーキテクチャ i386 cputype CPU_TYPE_I386 cpusubtype CPU_SUBTYPE_I386_ALL オフセット 68 サイズ 275880 整列 2^2 (4) アーキテクチャ armv7 cputype (12) cpusubtype cpusubtype (9) オフセット 275948 サイズ 295872 整列 2^2 (4) アーキテクチャ (cputype (12) cpusubtype (11)) cputype (12) cpusubtype cpusubtype (11) offset 571820 size 295792 align 2^2 (4) したがって、おそらくプロジェクトでライブラリをリンクするだけで、エラーが削除されます。

于 2012-10-16T06:16:19.483 に答える
0

おそらく、静的ライブラリは「十分な」マルチアーキテクチャではありません。iOS のみ (この場合は ARMv7 または ARMv6 と ARMv7 アーキテクチャのみが内部に存在する) 用にビルドされるか、64 ビット iPhone シミュレーター (この場合は) 用にビルドされる可能性があります。 i386 はライブラリに組み込まれておらず、x86_64 プロセッサ タイプのコードのみです)。これでは何もできません。実際のデバイスでアプリをテストします (ほとんどの場合、デバイスでアプリをテストします)。

于 2012-10-14T05:59:17.977 に答える