For some reason since recently, I cannot run my React Native app on a physical device from Xcode or even from the command line. I’m getting the following error:
duplicate symbol '_md5_block_data_order' in: /XXX/Library/Developer/Xcode/DerivedData/XXXX-bdrylwsxpcqgzvgkcljteyttcdmr/Build/Products/Debug-iphoneos/BoringSSL-GRPC/libBoringSSL-GRPC.a(md5.o) /XXX/project/ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a(md5_dgst.o) ld: 1 duplicate symbol for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
However it works fine from a simulator. And I can upload the app to AppStoreConnect without any issue.
From what I understand it looks like the same symbol exists in 2 libraries. Not sure why, most likely one of the mobile app dependencies.
In the list of Pods installed I have both
BoringSSL-GRPC (0.0.3) and
BoringSSL is used by Firebase and OpenSSL is used by Flipper.
This is the list of third party dependencies I use:
pod 'Firebase/Core', '~> 6.3.0' pod 'Firebase/Messaging', '~> 6.3.0' pod 'Firebase/Firestore', '~> 6.3.0' pod 'Firebase/Auth', '~> 6.3.0' pod 'TrustKit' pod 'Stripe', '16.0.0' pod 'Amplitude-iOS', '~> 4.5' pod 'Intercom', '~> 5.5.1' flipper_pods()
When I remove Firebase all together, it works fine and I can run my app on the device. But I need Firebase…
Any idea how to resolve this?