运行pod install
的Pod总是将React Installing React 0.11.0 (was 0.55.4)
降级时遇到问题
我的Pod文件:
# 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)相同的配置文件,但仍然存在相同的错误...
有人知道如何解决吗?
解决方案
我将此添加到了我的podfile中:
# 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'
答案 0 :(得分:1)
只需从pod文件中删除node_modules
行,然后在xCode中手动添加库即可。
我观察到,当您运行react-native link <someLibrary>
时,RN有时会自动将该库添加为pod依赖项。
在我的情况下,react-native-webview出现此错误。
要修复它:
我刚刚从Pod文件中删除了node_modules/react-native-webview
行,然后
在xCode中将该库添加到其他库附近
将node_modules/some_library/ios/RNCWebView.xcodeproj
拖入项目库文件
在build phases link binary with libraries
答案 1 :(得分:0)
如果要将RN集成到现有的本机应用程序中,则希望您的Podfile看起来大致像this。也就是说,您将通过SELECT
您是否正在开发未开发的RN应用程序?如果是这样,您可能不希望在Podfile中包含DROP TABLE
,因为这可能会导致您遇到麻烦。
相反,在运行pod 'React', :path => '../node_modules/react-native' ...
之前,请返回到您的仓库外观。此命令可能在您的Podfile中添加了pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
行。现在,您可以按照手动安装说明进行操作(我看不到该安装说明,但是可以检查these,这是同一件事),或者可以执行以下操作:从{{1 }},然后再运行react-native link lottie-react-native
。该依赖项不会添加到podfile中,而是作为静态lib链接到二进制文件中。