我最近将react-native升级到了0.60版本。结果,我的Podfile看起来像这样:
target 'myProject' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for myProject
# this is very important to have!
rn_path = '../node_modules/react-native'
pod 'React', :path => '../node_modules/react-native'
pod 'React-Core', :path => '../node_modules/react-native/React'
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
...
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
项目依赖项之一是FBSDK,如上所示。 问题在于该依赖项依赖于React pod而不是React-Core,因此构建失败,因为使用路径React / Module找不到某些模块:
Xcode,文件RCTFBSDKMessageDialog.h(来自pod react-native-fbsdk):
#import <React/RCTBridgeModule.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
@interface RCTFBSDKMessageDialog : NSObject <RCTBridgeModule>
@end
我收到错误:找不到错误的'React / RCTBridgeModule.h'文件
如果我将其更改为React-Core / React / RCTBridgeModule.h,它将起作用。
有什么想法可以在不重命名所有引用的情况下正常工作吗?
答案 0 :(得分:1)
我终于解决了。
问题出在Podfile上,最后一部分是从ios项目目标中删除React(我在以前的React版本中有此功能):
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
end
end
我还必须添加这行(来自React Native Upgrade helper):
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
...
use_native_modules!
因此,总而言之,问题在于,升级到0.60之后,Podfile没有正确升级,因此React模块没有添加到iOS目标。