ld:找不到-lDoubleConversion React Native 0.59的库

时间:2019-03-19 11:11:39

标签: ios react-native

我遇到此错误

❌  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)

这是我所做的

  1. 我清理并重建仍有错误
  2. rm -f〜/ Library / Developer / Xcode / DerivedData / ModuleCach

4 个答案:

答案 0 :(得分:1)

首先,请确保Libraries -> React.xcodeproj -> ThirdParty -> double-conversion存在,并从中生成一个静态库,如下所示:

enter image description here

然后,如果您使用的是椰子,请确保将DoubleConversion添加到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

最后,如果到目前为止所有这些都不起作用,那么可以手动运行一个脚本 为了解决React的第三方依赖关系。

只需转到node_modules/react-native并输入:

$ ./scripts/ios-install-third-party.sh

重要:始终在node_modules/react-native内运行它。因为据我所知,该脚本使用相对路径来存储第三方的源代码,并且react native将始终在node_modules/react-native/third-party中查找它。因此,只需确保在正确的位置运行它即可。

注意:该脚本可能已经作为项目的构建阶段运行。

答案 1 :(得分:0)

我遵循了Why linker link static libraries with errors? iOS上的答案,但自从我将答案合并后,对我来说什么都没有用。

我只能通过 ON 来完成“创建新的Swift文件”技巧。因此,删除所有内容,进行全新安装,仅添加一个新的Swift文件,该文件将创建 Bridging Header (不要删除Swift文件)。

答案 2 :(得分:0)

这终于对我有用。 (继续之前,请确保pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'已包含在您的Podfile中

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

通过打开ios目录中的xcworkspace文件,运行react-native-run-ios或Xcode构建。

答案 3 :(得分:0)

这终于对我有用。

pod解体

pod安装

使用X代码打开项目

从左侧边栏中删除资源文件夹

从新构建系统构建项目。