I have this error
❌ ld: library not found for -lDoubleConversion
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
erro
This is what finally worked for me. (Before proceeding, make sure pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
is included in your podfiles
1. Delete Podfile.lock
2. cd ios
3. pod deintegrate
4. pod install
5. cd ..
6. rm -rf node_modules && yarn
7. Add use_frameworks! to your Podfile
Run react-native-run-ios or Build with Xcode by opening the xcworkspace file in your ios directory.
I followed the answers on Why linker link static libraries with errors? iOS but nothing worked for me since I was combining the answers.
I got it to work by ONLY doing the "create new Swift-file"-trick. So remove everything, do a fresh install and only add a new Swift-file that will create the Bridging Header (dont delete the Swift-file).
This is what finally worked for me.
pod deintegrate
pod install
Open project in X-Code
Remove Resources folder from left sidebar
Build your project from New Build System.
First of all, make sure that Libraries -> React.xcodeproj -> ThirdParty -> double-conversion
exists and a static library is being produced from it, like this:
Then, if are you're using cocoapods, make sure to add DoubleConversion
to your Podfile
:
target 'MyApp' do
pod 'React', :path => "../node_modules/react-native", :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
# the following ones are the ones taken from "Libraries" in Xcode:
'RCTAnimation',
'RCTActionSheet',
'RCTBlob',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'yoga', :path => "../node_modules/react-native/ReactCommon/yoga"
# Here it goes
pod 'DoubleConversion', :podspec => "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
pod 'glog', :podspec => "../node_modules/react-native/third-party-podspecs/glog.podspec"
pod 'Folly', :podspec => "../node_modules/react-native/third-party-podspecs/Folly.podspec"
end
And finally, if none of this worked so far, there's a script you can manually run in order to resolve React's third-party dependencies.
Just go to node_modules/react-native
and type:
$ ./scripts/ios-install-third-party.sh
Important: Always run it inside node_modules/react-native
. Because, as far as I know, the script uses relative paths in order to store third-party's source code and react native will always look for it at node_modules/react-native/third-party
. So just make sure to run it in the right place.
Note: This script is, probably, already running as a build phase on your project.