I'm trying to link all of my SPM dependencies as dynamic libraries. However, at runtime I'm getting symbol collision warnings.
Class TtC9FrameworkA43Class is implemented in both ../DerivedData/MyApp-rynwnsmwl/Build/Products/Debug-iphonesimulator/PackageFrameworks/FrameworkA_1550442A05D4B_PackageProduct.framework/FrameworkA_1550442A05D4B_PackageProduct (0x14855a178) and
../DerivedData/MyApp-rynwnsmwl/Build/Products/Debug-iphonesimulator/PackageFrameworks/FrameworkA-Dynamic.framework/FrameworkA-Dynamic (0x113abe178). One of the two will be used. Which one is undefined.
If I look in ../DerivedData/MyApp-rynwnsmwl/Build/Products/Debug-iphonesimulator/PackageFrameworks/ then I'm seeing 2 instances of the same framework that should only exist as 1 dynamic library, but not for all of my libraries:
FrameworkA_1550442A05D4B_PackageProduct.framework
FrameworkA-Dynamic.framework
FrameworkB-Dynamic.framework
FrameworkC-Dynamic.framework
What's going on here? Is this a remnant of some old build steps and I should just clear my cache and try again? Or do I have something misconfigured?
I'd really like to understand what the generated Framework_abcd_PacakageProduct.framewrok
is.
The file type is a Mach-O 64-bit dynamically linked shared library arm64
(from the file
command), so from my point of view it looks like the build system is choking on producing a single dynamic framework and producing 2. Tips and education welcome!