Domanda

I am trying to implement Admob mediation on one iOS app. while integration with InMobi when I am building my project I am getting this error

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)

please help

È stato utile?

Soluzione

Have you not included the InMobi Commons library (libInMobiCommons) in your project?

InMobi iOS AdNetwork Bundle: (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

Altri suggerimenti

Doing a lipo -detailed_info on the library tells its build for the following archs - armv7,armv7(s) & i386. architecture i386 cputype CPU_TYPE_I386 cpusubtype CPU_SUBTYPE_I386_ALL offset 68 size 275880 align 2^2 (4) architecture armv7 cputype (12) cpusubtype cpusubtype (9) offset 275948 size 295872 align 2^2 (4) architecture (cputype (12) cpusubtype (11)) cputype (12) cpusubtype cpusubtype (11) offset 571820 size 295792 align 2^2 (4) So probably just link the library in your project, and your errors will be removed.

Presumably the static library is not multi-architecture "enough": it may be either built for iOS only (in this case only the ARMv7 or ARMv6 and ARMv7 architectures are present inside), or for a 64-bit iPhone simulator (in this case i386 is not built into the library, only code for the x86_64 processor type). You can't really do anything with that; test the app on the real device (it's almost always to test your app on the device anyway).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top