Undefined symbols for some ObjC files

Hi guys.

Im breaking my head for days because a problem. Im getting undefined error without any reason apparently:

Undefined symbol: _OBJC_CLASS_$_EZRLoggerPlatformServiceImpl
Undefined symbol: _OBJC_CLASS_$_EZRHttpClientPlatformServiceImpl
Undefined symbol: _OBJC_CLASS_$_EZRSharedDataPlatformServiceImpl
Undefined symbol: _OBJC_CLASS_$_EZRFileHelperPlatformServiceImpl

I dont know why, but is only on these 4 files that is my own implementation, that always work before.

It is there, as always:

On github action is appear on compilation log without problems.

But when i build on xcode, i get these errors only on these files.

Can anyone help me pls!

I dont know what to try more.

What are the compiler command lines when compiling those files? What is the linker command line for the binary that leads to those linker errors?

One thing that looks different for those files is that they appear to be .m rather than .mm. I’m assuming that means they will be compiled as OBJC rather than OBJCXX. That could explain some differences. Compare the above compiler command lines with those from building your .mm files and see if there is any relevant difference.

Hi,

Thanks. But the problem is that i need add visibility to this. I don’t know why this problem appear after years in this project. But the solution was:

Instead of:

@interface UBLoggerPlatformServiceImpl : NSObject<UBLoggerPlatformService>

Now is:

__attribute__((visibility("default")))
@interface UBLoggerPlatformServiceImpl : NSObject<UBLoggerPlatformService>

Thanks man.