Question

I'm building app usage tracking into an iOS iPad app (iOS 6.1 and newer) using the Omniture App Measurement libraries.

As there are seperate libraries for device and simulator, I'm using the one for the simulator: libOmnitureAppMeasurement-iPhoneSimulator.a

  • I've downloaded and unzipped the library and header into folder iPhoneAppMeasurement in my project (this folder contains the files libOmnitureAppMeasurement-iPhoneSimulator.a and OMAppMeasurement.h which have been correctly added to the project)

  • I ensured that the library is pointed to correctly in my library search path under build settings.

  • I added the Omniture SDK setup and a few test calls in the code.

When I build I get Undefined symbol errors of the type "Pointer-to-literal-objc-class-name" ...

Undefined symbols for architecture i386:
  ".objc_class_name_NSArray", referenced from:
      pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
  ".objc_class_name_NSBundle", referenced from:
      pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
  ".objc_class_name_NSDate", referenced from:
      pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)

... etc ...

  ".objc_class_name_UIScreen", referenced from:
      pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
  "_OBJC_CLASS_$_OMAppMeasurement", referenced from:
      objc-class-ref in OmnitureEvent.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I get these both for the iPad 6.1 and iPad 7.0 simulators. How can I resolve this?

UPDATES: From feedback and other articles I took the following steps...

- I added libstdc++ under Apple LLVM 5.0 -Language C++ settings
- I changed Other Linker flags under Build Settings->Linking to use -libstdc++ 
  (instead of lstdc++)
- I ensured libstdc++.dylib was included under Build Phases 

Now I get "Apple Mach-O Linker Error" ld: library not found for -libstdc++

Is there a way I can do a command line find to check for the existence of libstdc++.dylib and then set/include it in my project? That may not be an ideal approach but I need to get this fixed!

Was it helpful?

Solution

I found that the Adobe Analytics API has been overhauled and the new API is AdobeMobileLibrary-4.0.2-iOS.zip

Under: https://developer.omniture.com/en_US/gallery/app-measurement-for-ios

The usage is a different flavor and following the documentation it builds and runs just fine. It appears libOmnitureAppMeasurement.... has been deprecated.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top