Compilation with XCFramework fails on simulator only

Hello,

I am currently facing a compilation issue on Simulator with frameworks that I just migrated to .xcframework.

My workspace is a little bit complex, I have an iOS application project [A] with an Objective-C/Swift framework target [B] inside.

This framework target uses another Objective-C++ framework [C] distributed as a cocoapod (coming from another internal project), and this framework is wrapping multiple C++ .a/libraries [D, E, F, ...].

For multiple years, we created all these libraries and frameworks with all the required architectures using the lipo tool.

Few weeks ago I had the following compilation error ld: building for iOS Simulator, but linking in dylib built for iOS so I decided to package all these libraries and frameworks as .xcframework.

Now the pod with the Objective-C++ .xcframework seems to compile/run fine on device, but when I try to build the app A (or even the framework 'B' target) for simulator, I get the following error :

B.h:10:9: Module 'C' not found

Could not build Objective-C module 'B'

The .xcframework contains the following files and the module.modulemap files seems missing on simulator, I guess it may be related, but I can't understand why :(

% tree B.xcframework
B.xcframework
├── Info.plist
├── ios-arm64_armv7
│   └── B.framework
│       ├── Headers
│       │   └── B.h
│       ├── Info.plist
│       ├── Modules
│       │   └── module.modulemap
│       └── B
└── ios-arm64_i386_x86_64-simulator
    └── B.framework
        ├── Headers
        │   └── B.h
        ├── B
        └── _CodeSignature
            └── CodeResources

8 directories, 44 files

After a rebuild, the "Modules" folder was generated appropriatelly for device AND simulator, and the xcframework worked on both platforms...

However, I still have one pod that we use for testing ("Calabash"), that is not an .xcframework (looks like it is a .dylib) and that trigger the ld: building for iOS Simulator, but linking in object file built for iOS error...

Compilation with XCFramework fails on simulator only
 
 
Q