As the error states, bridging headers are not allowed in Frameworks. The Importing Code from Within the Same Framework Target section of the Mix & Match apple documentation hints at this. As they say, you need to “In your umbrella header file, import every Objective-C header you want to expose to Swift”.
However, I discovered that you may also need to make those specific headers public as well. This answer reviews why and how to do that: Swift compiler error: “non-modular header inside framework module”.
So, do this:
- Remove your bridging header file.
- Remove references to the bridging header file in the build settings for the framework
- Add the necessary headers to your umbrella file ([ProductName].h)
- Make the included files public in the framework’s “Headers” section of its “Build Phases”.
- Clean and rebuild.
Note: The “umbrella header file” is a file (named [ProductName].h) that generally represents all public headers of a framework. It is usually just a list of #import statements to other headers contained in the framework. In Xcode, if you open UIKit.h, you will see a good example of an umbrella file.