Thank you for your fast response, @pepicrft !
As a temporary workaround, I’ve managed to fix this by making the aggregate target a static framework as well. This post was helpful. I plan to reproduce the issue in a separate project soon. I suspect the root cause might be related to our aggregate framework being a mixed ObjC/Swift framework. While we’ve restricted all Swift imports to internal, there could be something happening on the ObjC side. I’ve inspected the generated modulemap inside the framework and noticed export * and module * { export * }, which seems suspicious to me.