I don’t think the problem would have occurred in the first place if none of the products were dynamic. I’ve certainly never encountered issues importing this XCTest‐dependent module from all over the place.
If the main library needs to be dynamic, then having a second library that’s also dynamic and shares any modules would cause duplicate symbols. The current inability to split out the shared symbols into their own dynamic library without having a separate package seems to be the real root of the issue. To do that, we would need the ability to depend on products from the same package.
It happens to be what I asked about on my very first post on these forums a long time ago, but nothing has ever come of it.