1

I am trying to add the Honeywell Captuvo iOS library to my CodenameOne project as a native library. I have been through the "Generate Native Access" process and placed the .a library in the native/ios directory. However when I send the app to be built it comes back with the error:

Undefined symbols for architecture arm64:

"_OBJC_CLASS_$_EAAccessoryManager", referenced from: objc-class-ref in libCaptuvoSDK.a(CaptuvoReal.o)

Many thanks

NvServices
  • 227
  • 1
  • 6

1 Answers1

1

Rereading the error message it seems I missed a key detail. You need to add the ExternalAccessory.framework to your project. To do this you need to define the build hint: ios.add_libs=ExternalAccessory.framework

Original answer below:

Is the name of the .a library preceded with the lower case word lib and does it actually end with a .a. If not make sure to rename it so it abides by these constraints.

Assuming both are OK you will need to verify the library actually has the required architecture in this case arm64.

This is explained in this question: How to check if a static library is built for 64-bit?

I would just use the second suggestion: file libFileName.a

It should include arm64 among the list of supported architectures.

Shai Almog
  • 51,749
  • 5
  • 35
  • 65
  • Hi, yes the library is called libCaptuvoSDK.a so matches those constraints. Thanks for the "file" command pointer, I have run it and it lists four architectures for this library: armv7, i386, x86_64 and arm64 so it seems I have the necessary architectures? – NvServices Jan 10 '18 at 08:49
  • OK I revised my answer based on this – Shai Almog Jan 11 '18 at 06:53