Dynamic library breakage on OSX after update

Hey there,

I recently updated tracktion and JUCE (to the develop branches of both, as of a few weeks ago) after not having updated for a year or two. My project builds a (non-projucer) dynamic library. Updating seems to be working fine for our Windows and Android versions, but I’m running into trouble on OSX. The library builds, but is not readable by our apps now. Nothing about our build system has changed since the update, except for making sure the new source is included.

I realize this is too vague for specific technical feedback; I’m curious to know, whether in JUCE more broadly or tracktion more specifically, if there are any changes that might affect a build artifact in this way. I wouldn’t have expected so, given that only under-the-hood sources changed (we export our own functions to be used as an API); but this is the only piece of the code that has changed and resulted in the break.

I am developing an app and have been tracking the released builds as well as the development progress of both Tracktion and JUCE, and have been faced with broken builds a few times in the last week - mostly because I forgot/neglected to do “git submodule update --init --recursive” on my tracktion_engine folder, and also because I forgot to rebuild Projucer.app (and thus JUCE itself) after such an update.

Without further details on your side its hard to say what your issues are, but I can only point out that if you want to stay current with Tracktion development, you must remember to do a submodule update on tracktion_engine/ and as well, fully rebuild JUCE after doing so …

Things have stabilized, but the teams were breaking things pretty aggressively over the last few weeks, which would have been only impactful for those of us trying to keep up with their daily (impressive) development movement …

Thanks for the reply. Because it had been so long since we’ve updated (2 years ago at least, way before tracktion 2.0), I entirely re-pulled the tracktion and JUCE libraries. We don’t use the Projucer to build our project files; I generated the extra include_tracktion_ files as needed by hand. It seems that JUCE and tracktion are both source-only dependencies in general, so I’m not sure how else they could alter the validity of the build artifact. Especially just on OSX. The only thing I had to alter to get the OSX artifact to compile/link was to include the Metal/MetalKit frameworks which JUCE now depends on.

Maybe you had stale artifacts with the wrong architecture somewhere in your build tree, and triggering a rebuild got you binaries with both arm and x64 included?