Swift frameworks do not work with build configurations named other than 'Debug' or 'Release': No such module

Solution 1:

Add the following Framework Search Path in the Build Settings of your target: $(SYMROOT)/Release$(EFFECTIVE_PLATFORM_NAME) and make it non-recursive

In my case this was for Alamofire, which was added to my project as a git submodule.

The framework was being built correctly which can be seen in the build logs, but I assume the default framework search path is derived from the scheme name. The Alamofire framework & dSYM file are in Release-iphoneos/ Release-iphonesimulator.

This should work work with any Swift framework as long as it's scheme names are default. If not, check the build logs and adjust the framework search path accordingly.

Solution 2:

I had this issue as well and fixed it by adding the same configuration names to the included Alamofire project.

My build schemes in my main project: main project configs

And the build schemes inside the Alamofire project: screenshot of schemes

Note: Also, make sure your iOS deployment target is the same in both projects.