Over the course of Swift's existence I've had to take advantage of a number of workarounds (i.e., hacks) to compile a Swift framework that utilizes non-modular system code, e.g., CommonCrypto, sqlite3, etc.These solutions have included:Renaming the umbrella header to be something different than the module name in order to exploit a bug that let frameworks compile with bridging headers, wherein the non-modular import happened: #import <CommonCrypto/CommonCrypto.h>Building a dummy, optional framework with a custom module map specifying the absolute path to an SDK header (relative SDK paths don't work): module CommonCrypto [system] [extern_c] { header /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h export * }Specifying a custom module map with an additional header specifying the absolute path to an SDK header: framework module MyCrypto { umbrella header MyCrypto.h header /Applications/Xcode.app/Contents/Developer/Pla