Cocopods всегда устанавливает старый React (0.11.0) - PullRequest
0 голосов
/ 06 сентября 2018

У меня проблема при запуске pod install Pod всегда понижает версию 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, но это решение не работает и для меня.

Я положил в подфайл это:

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'

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Просто удалите строки node_modules из файла pod и добавьте библиотеку вручную в xCode.

Я заметил, что когда вы запускаете react-native link <someLibrary>, иногда RN автоматически добавляет эту библиотеку как зависимость pod.

В моем случае эта ошибка была обнаружена для реакции-native-webview.

Чтобы исправить это:

Я только что удалил строку node_modules/react-native-webview из файла модуля а затем

Добавил эту библиотеку в xCode рядом с другими библиотеками

Перетащите node_modules/some_library/ios/RNCWebView.xcodeproj в файлы библиотеки проекта

enter image description here

Добавить библиотечные зависимости в build phases link binary with libraries

enter image description here

0 голосов
/ 08 сентября 2018

Если вы интегрируете RN в существующее нативное приложение, вам нужно, чтобы ваш подфайл выглядел примерно как 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 из node_modules/lottie-react-native и только потом запускаем react-native link lottie-react-native. Зависимость не будет добавлена ​​в подфайл, а вместо этого будет включена в двоичный файл как статическая библиотека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...