I am getting following error from one of the pod frameworks while running the app (Build is a success).
dyld: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E.
Referenced from: X framework
Expected in: frameworks/DeviceKit.framework/DeviceKit
mac OS 10.15
Xcode 12.4
React native 0.63
cocoapods: 1.10.1
@rb13 I see that you or someone else filed FB16388677 with a link to your project, and we thank you for doing so.
For an app that can build all of its code from source that you control, you should make sure that the deployment targets for all modules are set uniformly. So for example, if an app supports iOS 15 as its deployment target, and you also own all of the frameworks that go into that app, make sure to set all of those minimum deployment targets to iOS 15. This obviates the need for the system to insert some backwards compatibility code beyond the oldest OS version that the app supports. That compatibility support is what the symbol __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E
represents.
For many apps, the above is not possible, as you import dependencies from different sources which you cannot modify, such as an XCFramework. In these cases, the library author should add -runtime-compatibility-version none
to the Other Swift Flags build setting. The compatibility support that I reference in the prior paragraph only is needed in executables (i.e. app targets), and not framework libraries, so adding this complier flag eliminates the addition of those backwards compatibility code paths from the complied framework.
— Ed Ford, DTS Engineer