I have an SPM package that is dependant on a 3rd party binary package ("MSAL", "GitHub - AzureAD/microsoft-authentication-library-for-objc: Microsoft Authentication Library (MSAL) for iOS and macOS).
The framework that gets built for my package is used by my main app and a few appex plugins on iOS.
In the plugins' "Frameworks and Libraries" sections in Xcode I add my package as "Do Not Embed", since it is already embedded in the main app.
When I archive my app and upload to App Store I get validation errors such as this:
It seems that the build system is copying my package's dependant binary frameworks into each appex's "Frameworks" folder, which is obvious a daft thing for Xcode to do as it's never been allowed to have a Frameworks folder in an iOS sub-bundle. It knows not to copy the other frameworks it builds, only this specific one.
Surely if a top-level package is set to "Do Not Embed" it is implied that none of its dependants should either.
Is this expected behaviour or an edge case that was never considered.
I can workaround it in the project by adding a User Script to delete these unwanted Frameworks folders.
(Xcode 3.2.1 BTW)