In order for my Objective-C framework to link successfully in my Swift cocoa touch framework, I had to use this unpretty workaround, which involves importing all framework headers into the project as public headers.
I totally don't need all of them appearing in my umbrella header, so I want to somehow remove the bunch of warnings generated. ("Umbrella header for module 'Foo' does not include header"). I went through LLVM warning settings in the build settings, but could not found it.
Try setting the header role from public to project and make sure that you don't reference any third-party headers from your own headers - only from implementations.
Any header that is of role public must be imported into the umbrella header.
If you're getting this warning from a “Compile Swift source files” ▸ “Precompile bridging header” build step (also labeled
PrecompileSwiftBridgingHeader
), here's how you suppress it:-Xcc
and-Wno-incomplete-umbrella
to “Other Swift Flags” (in that order).The warning flag is
-Wincomplete-umbrella
, so to suppress, pass-Wno-incomplete-umbrella
.