答案 0 :(得分:237)
xcode Product-> Scheme-> Manage Schemes点击Target上的'+'选择“React”并设置React是共享的。
答案 1 :(得分:59)
删除节点模块,然后运行npm install
(或更好的纱线),在完成所有内容下载后,运行react-native upgrade
,这样就可以选择用模板替换旧文件了所以你在react-native中重新链接你的本机依赖项,这应该可以解决你的问题。当然不要忘记在Xcode中清理你的项目。
答案 2 :(得分:19)
对于所有使用 React Native 0.40.0 或更高版本的人,标头导入与 RN 0.40.0 有重大变化,导致许多.h文件没有发现错误。 react-native-git-upgrade
在调试时为我解决了问题,但在发布/存档中构建失败。
我正在使用 RN 0.42.3 与cocoapods和 Xcode 8.2.1
要完全解决此问题,请转到Xcode>产品>方案>编辑方案>
答案 3 :(得分:16)
其他任何建议都没有解决我的错误,但是这个做了。
在您的react-native应用程序中创建一个名为ios/Podfile
的文件,其中包含以下内容:
# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target '<YOUR_APP_NAME>' do
# Fixes required for pod specs to work with rn 0.42
react_native_path = "../node_modules/react-native"
pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
pod "React", :path => react_native_path, :subspecs => [
'Core',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS
# when not using frameworks we can do this instead of including the source files in our project (1/4):
# pod 'react-native-maps', path: '../../'
# pod 'react-native-google-maps', path: '../../' # <~~ if you need GoogleMaps support on iOS
end
从ios文件夹中运行命令pod install
。
重新启动XCode,错误应该消失。
答案 4 :(得分:9)
我第一次尝试在XCode中运行React构建后遇到了这个问题,而我所要做的就是实际构建并运行以使错误消失(选择团队并进行适当的配置之后)。有时,XCode会在第一次编译和链接事物之前显示并非真正错误的错误。
答案 5 :(得分:7)
我通过以下步骤解决了这个问题:
答案 6 :(得分:6)
最适合我的解决方案是共享React
方案。
如果您没有React方案,请通过Selecting scheme menu -> Manage Scheme -> + -> choose React
创建一个新方案,然后将React方案标记为Shared
此外,如果您使用Xcode 10,请转到File -> Project Settings
并选择“旧版”构建系统
答案 7 :(得分:5)
对于我在ReactNative“0.54.2”中的情况,我用以下解决方案解决了它
在Xcode中选择Product->Scheme->Manage Schemes
,取消勾选'YourProject'-tvOS将其设置为不共享
答案 8 :(得分:3)
在安装Pod之后,您可能正在运行.xcodeproj
文件。
将其关闭并打开.xcworkspace
文件。它对我有用。
答案 9 :(得分:3)
在项目目录中运行npm install
以安装react-native
来解决此错误。
答案 10 :(得分:2)
最佳解决方案:
在Xcode中打开项目的“构建设置”,然后搜索“标题搜索路径”。
双击“标题搜索路径”旁边的其他属性为“是”或“否”的
现在将以下内容添加到“标题搜索路径”(在“构建设置”下):
$(SRCROOT)/../ node_modules / react-native / React $(SRCROOT)/../ node_modules / react-native / React / Base 不要忘记让它们都递归。
答案 11 :(得分:2)
尝试以下方法:
答案 12 :(得分:2)
我遇到了同样的问题,我通过将 RNFIRMessaging.h 置于 React / RCTBundleURLProvider.h
之上来解决此问题。所以我看起来会像:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
答案 13 :(得分:1)
单击产品->方案->管理方案-> +。然后添加react作为共享。还确保您的项目名称也在那里。
答案 14 :(得分:1)
我要替换
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
作者
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
AppDelegate.m文件中的工作正常。
答案 15 :(得分:1)
我发现升级React后我对此问题的解决方法是将#import "RCTBundleURLProvider.h"
的声明更改为#import <React/RCTBundleURLProvider.h>
答案 16 :(得分:1)
在我运行的项目的基础目录中:
node_modules/react-native/packager/packager.sh --reset-cache
导致:
Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/..../work/...../react_tutorial/AwesomeProject
Loading dependency graph... ERROR Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:
lsof -i :8081
我发现当另一个打包程序进程正在运行时,程序包管理器无法运行。
我发现该进程正在运行:
lsof -i :8081
比我kill 9 ...
过程。
在我关闭Xcode之后,运行:
npm install
再次启动Xcode,从这一刻开始,一切都按预期工作!!
答案 17 :(得分:1)
我遇到了同样的问题。然后我删除了节点.try以使用这些步骤
然后进行构建并查看
答案 18 :(得分:0)
就我而言,我无法删除node_modules并重新安装,我也无法执行react-native-git-updgrade
或react-native upgrade
,因为我想继续使用RN-0.59,因为.60会导致我的依赖性。
无论如何,我的情况是我缺少“ React / RCTBundleURLProvider.h”文件。我已经在模式中使用了React。它不在我的库目录中。我检查了 target 的构建设置。
在目标依赖关系中,我也有React。
我删除了“反应”目标依赖项,然后重新添加。清理构建文件夹,重新构建项目。有效。
答案 19 :(得分:0)
我正在使用React Native 0.61。我创建了一个共享扩展名,并收到此错误。我需要更换:
#import "RCTBundleURLProvider.h"
使用
#import "React/RCTBundleURLProvider.h"
答案 20 :(得分:0)
https://github.com/facebook/react-native/blob/v0.63.3/template/ios/Podfile
用您的项目名称查找/替换HelloWorld
。
将此文件放入项目中的./ios
文件夹中
gem install cocoapods
cd ios
pod install
然后在XCode中打开YourProject.xcworkspace
文件
在XCode中,转到Product -> Scheme -> Manage Schemes
并检查React
然后尝试再次构建项目。
答案 21 :(得分:0)
我已经完成了上面提到的所有答案。
以下是适合我的解决方案:
第1步:
运行:
npm install react-native-fcm --save
这导致项目中的目录在 node_modules&gt;下;反应天然-FCM 强>
第2步:
您需要添加'$(SRCROOT)/../node_modules/react-native-fcm/ios'
构建设置中的标题搜索路径。
这两个步骤对我有用,可以删除错误。
有关详细信息,您可以浏览以下链接:
答案 22 :(得分:0)
我尝试了所有的建议,并且他们都没有工作,我删除了repo并再次克隆它,这对我有用,所以我的建议是将你的更改提交回来并再次克隆对我有效的repo。 / p>
答案 23 :(得分:0)
如果您没有运行npm install
,则可能会遇到此问题。
答案 24 :(得分:-1)
你需要安装反应原生, 在终端运行中
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后
brew install node
brew install watchman
npm install -g react-native-cli
源:
https://facebook.github.io/react-native/docs/getting-started.html
答案 25 :(得分:-2)
确保项目的路径没有任何空格。 只是重命名文件夹和删除空格可以解决我的问题。