Private module map for a framework
Disclaimer: I have not tried this for CommonCrypto
but it works for my case with libz
A possible solution to this is to create a module.private.modulemap
as described in the Clang documentation
So for example in FrameworkA you can write a module.modulemap
file for FrameworkA like so:
module FrameworkACommon {}
Then you would create a module.private.modulemap
file like so
explicit FrameworkACommon.Crypto [system] [extern_c] { header "/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/usr/include/CommonCrypto/CommonCrypto.h" link "CommonCrypto" export *}
Then repeat for FrameworkB.
Now CommonCrypto is a private module in both FrameworkA and FrameworkB and the names won't clash.