web-dev-qa-db-ja.com

Cocoapodは常に古いReact(0.11.0)をインストールします

_pod install_を実行すると問題が発生します__ポッドを常にダウングレードReact Installing React 0.11.0 (was 0.55.4)

私のポッドファイル:

_# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
platform :ios, '9.0'
project 'BunteMobile.xcodeproj'
target 'BunteMobile' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BunteMobile
  pod 'Adjust', '~> 4.8.3'
  pod 'Google-Mobile-Ads-SDK'
  pod 'GoogleAds-IMA-iOS-SDK', '~> 3.7'
  pod 'Fabric', '~> 1.7.0'
  pod 'Crashlytics', '~>  3.9'

  pod 'lottie-ios', :path => '../node_modules/lottie-ios'

  pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'

  target 'BunteMobileTests' do
    inherit! :search_paths
    # Pods for testing
  end

end
_

_node_modules_からreactフォルダーを定義したときにいくつかの解決策について読みましたが、この解決策も私にとっては機能しません。

私はこれをpodfileに入れました:

_pod 'yoga', path: './node_modules/react-native/ReactCommon/yoga'
pod 'React', :path => '../node_modules/react-native'
_

しかし、それでも機能しません。ダウングレードは消えますが、ビルドしようとすると、次のエラーが発生します。

_/node_modules/react-native/React/Base/RCTConvert.h:17:9: could not build module 'yoga'
_

私は公式のRNドキュメント( https://facebook.github.io/react-native/docs/integration-with-existing-apps.html )と同じプロファイルを試しましたが、それでも同じエラーが発生しました。


解決

これをポッドファイルに追加しました:

_# Pods for React-Native start
  pod 'React', :path => '../node_modules/react-native'
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
_

(2019を更新)ソリューション2(react-native 0.61+):これをポッドファイルに追加

_  # Pods for React-Native start
  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/'
  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'

  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  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'
_
9
Lukáš Šálek

ポッドファイルからnode_modules行を削除し、xCodeにライブラリを手動で追加するだけです。

react-native link <someLibrary>を実行すると、RNがそのライブラリをポッド依存関係として自動的に追加する場合があることを確認しました。

私の場合、このエラーはreact-native-webviewで発生しました。

修正するには:

Podファイルからnode_modules/react-native-webview行を削除しただけです、次に

そのライブラリを他のライブラリの近くのxCodeに追加しました

node_modules/some_library/ios/RNCWebView.xcodeprojinをプロジェクトライブラリファイルにドラッグ

enter image description here

ライブラリの依存関係をbuild phases link binary with librariesに追加します

enter image description here

1
Florin Dobre

RNを既存のネイティブアプリに統合する場合は、podfileをおおまかに this のようにする必要があります。つまり、React依存関係のパスをpod 'React', :path => '../node_modules/react-native' ...で指定します

グリーンフィールドRNアプリを開発していますか?もしそうなら、それはあなたが抱えている問題を引き起こす可能性が高いので、ポッドファイルにpod 'lottie-react-native', :path => '../node_modules/lottie-react-native'を含めたくないでしょう。

代わりに、react-native link lottie-react-nativeを実行する前に、リポジトリの外観に戻ります。このコマンドは、おそらくpod 'lottie-react-native', :path => '../node_modules/lottie-react-native'行をポッドファイルに追加しました。今、あなたは手動のインストール手順に従うことができます(私はそこにないことがわかりますが、あなたはチェックすることができます これら 、それは同じことになります)またはあなたは以下を行うことができます:削除lottie-react-native.podspec from node_modules/lottie-react-nativeを実行してから、react-native link lottie-react-nativeを実行します。依存関係はpodfileに追加されませんが、代わりに静的libとしてバイナリにリンクされます。

0
vonovak