Xcode: LLVM 7.0: Disable warning “Umbrella header for module does not include header”

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.

  • Clang: Proper way to enable SSE4 on a per-function / per-block of code basis?
  • Dynamic forwarding: suppress Incomplete Implementation warning
  • Apple LLVM Compiler Error 4.1
  • Literal @YES not working in iOS 5 / Xcode 4.4
  • LLVM vs. GCC for iOS development
  • How to cross-compile clang/llvm for iOS?
  • 2 Solutions Collect From Internet About “Xcode: LLVM 7.0: Disable warning “Umbrella header for module does not include header””

    The warning flag is -Wincomplete-umbrella, so to suppress, pass -Wno-incomplete-umbrella.

    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.