The GAD_GTMStringEncoding class is implemented in both <framework> and <app>. One of the two will be used. Which one is undefined

I have an iOS project in Xcode. It contains downloads of related libraries, including GoogleInteractiveMediaAds.framework, as well as an internal player library, which, it seems to me, is also related to this structure. Both are embedded binaries.

The project compiles just fine, but at runtime I get the following error:

The GAD_GTMStringEncoding class is implemented as in /GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds and APP_PATH. One of the two will be used. Which one is undefined.

In the simulator, the application works as expected every time, despite this warning - I get the preliminary, medium and after-sales announcements that I expect. Everytime. On the device, this is another story with ads, sometimes working, and sometimes not. I know that the above problem leads to different behaviors regarding different goals, and I suspect that this conflict is to blame for the broken functionality on the devices.

The solutions I found here on SO suggest either changing the namespaces or removing the link from my application or library that I'm linked to. The problem is that if I delete the embedded binary in my project, then it will not compile:

dyld: library not loaded:
@ RPATH / GoogleInteractiveMediaAds.framework / GoogleInteractiveMediaAds
Reference: APP_PATH
Reason: image not found
(Lldb)

I saw several people suggest that they remove the link from the application and use the internal instance of the player (where then I need to hope that the player is compiled against the version that I need), but how on earth do you do it? And will this work in this case?

Also, is there a way to find out where another instance of GoogleInteractiveMediaAds.framework is located? I only assume that it is inside the internal library of players, but I do not know for sure, since I have no source. The error message just provides me with a path to a compiled application, which helps a little, since it has 30 linked libraries.

Thanks in advance.

+5
source share
1 answer

After initially insisting that the problem was somewhere in our code, the Google team responsible for this structure was eventually forced to admit (after we presented an example application) that this was a problem with their code and not with us. This was allowed in the update.

0
source

Source: https://habr.com/ru/post/1265131/


All Articles