The Mac has a lovely feature where libraries containing Objective C have to have unique class names; see e.g.
https://qnoid.com/2013/02/12/How-to-deb ... se-(Part-1).html
https://qnoid.com/2013/02/12/How-to-deb ... se-(Part-2).html#main
for how it occasionally trips up developers. The symptom is lots of warnings at runtime,
and if your app looks up one of the classes by name, possibly a crash.
That kind of makes sense, having two different versions of a library in the same app is madness.
But evidently they don't have to be in the same app. I've installed two different versions of cef
so multiple apps can link to them without bundling them (yeah, I know, I'm asking for it),
and if I do that with cef 3112 and cef 3202, I see warnings like
Class CrCoreCursor is implemented in both /opt/foo/deps-64-12/ce
f3202/Release//Chromium Embedded Framework.framework/Chromium Embedded Framework
(0x11824e908) and /opt/foo/deps-64-12/cef3112/Release//Chromium Embedded Fra
mework.framework/Chromium Embedded Framework (0x10c0bfce8). One of the two will
be used. Which one is undefined.
otool -L on the app shows only one of the two. Not sure why the other library ends up
being referred to by the app.
(This also happens with earlier versions, and I have a sed script to make the classes unique when I build cef,
but in 3112, the number of classses involved exploded.)
Has anyone else here hit this?