Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ld: library not found for -lDoubleConversion React Native 0.59

I have this error

❌  ld: library not found for -lDoubleConversion

❌  clang: error: linker command failed with exit code 1 (use -v to see invocation)


error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by opening App.xcworkspace

** BUILD FAILED **

The following build commands failed:
    Ld /Users/mohamedelmi/workspace/elmi/food-frontend/ios/build/App/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/App normal x86_64
(1 failure)

here is what i did

  1. I clean and rebuild still have the error
  2. rm -f ~/Library/Developer/Xcode/DerivedData/ModuleCach
like image 772
Mohamed Elmi Hassan Avatar asked Mar 19 '19 11:03

Mohamed Elmi Hassan


1 Answers

First of all, make sure that Libraries -> React.xcodeproj -> ThirdParty -> double-conversion exists and a static library is being produced from it, like this:

enter image description here

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.

like image 70
Murilo Paixão Avatar answered Oct 21 '22 01:10

Murilo Paixão