Estou tentando executar meu aplicativo React Native no XCode e continuo recebendo esse erro. Não consigo descobrir como resolver o problema. Alguma sugestão?
Captura de tela do erro no XCode:
Estou tentando executar meu aplicativo React Native no XCode e continuo recebendo esse erro. Não consigo descobrir como resolver o problema. Alguma sugestão?
Captura de tela do erro no XCode:
Respostas:
Exclua os módulos do nó, execute npm install
(ou, melhor ainda, o fio) e, após o término do download, execute o react-native upgrade
que deve oferecer a opção de substituir arquivos antigos pelos de modelo, ao fazer isso, você vincula novamente suas dependências nativas em react-native, que deve corrigir seu problema. Claro que não se esqueça de limpar seu projeto no Xcode.
react-native upgrade
todas as minhas configurações de compilação foram excluídas.
xcode Produto-> Esquema-> Gerenciar Esquemas, clique em '+' no Destino para selecionar "Reagir" e definir que o Reagir é compartilhado.
Para todos aqueles que estão usando o React Native 0.40.0 ou superior, as Importações de cabeçalho têm uma grande alteração em relação ao RN 0.40.0 e resultam em muitos erros de arquivo .h não encontrados. react-native-git-upgrade
Corrigido o problema para mim durante a depuração, mas a compilação falha no release / archive.
Estou usando o RN 0.42.3 com cocoapods e o Xcode 8.2.1
Para corrigir isso completamente, vá para Xcode> Produto> Esquema> Editar esquema>
Agora limpe o projeto e crie
Nenhuma das outras sugestões estava corrigindo meu erro, mas esta foi o que ocorreu.
Crie um arquivo nomeado ios/Podfile
dentro do aplicativo nativo do react com o seguinte conteúdo:
# 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
Execute o comando pod install
de dentro da pasta ios.
Reinicie o XCode e o erro deve desaparecer.
Eu me deparei com esse problema após minha primeira tentativa de executar uma compilação React no XCode, e tudo que eu precisava fazer era compilar e executar para que o erro desaparecesse (depois de escolher uma equipe e aprovisionar adequadamente). Às vezes, o XCode mostra erros que não são realmente erros até compilar e vincular as coisas na primeira vez.
A solução que funciona para mim é compartilhar o React
esquema.
Se você não tiver o esquema React, crie um novo por Selecting scheme menu -> Manage Scheme -> + -> choose React
e marque React esquema como Compartilhado
Além disso, se você usar o Xcode 10, vá para File -> Project Settings
e selecione Legacy build system
Resolvi esse problema seguindo as etapas:
React.xcodeproj
de Libraries
para a raiz do projeto.SaleKit
) emTARGETS
Build Phases
Target Dependencies
adicionarReact
Para o meu caso no ReactNative "0.54.2", resolvi-o com a seguinte solução
No Xcode selecione Product->Scheme->Manage Schemes
, desmarque 'YourProject'-tvOS defina-o como Não compartilhado
Melhor solução :
Abra 'Build Settings' para o seu projeto no Xcode, procure 'Header Search Path'.
Clique duas vezes ao lado de 'Caminho da pesquisa de cabeçalho', onde outras propriedades têm um 'sim' ou 'não'
Agora adicione o seguinte ao "Caminho da pesquisa de cabeçalho" (em Configurações de compilação):
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
Não se esqueça Torne os dois recursivos.
Execute npm install
no diretório do projeto para instalar a react-native
solução desse erro.
No diretório base do projeto, eu corro:
node_modules/react-native/packager/packager.sh --reset-cache
O que resultou em:
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
Descobri que o gerenciador de pacotes não pode ser executado quando outro processo do empacotador estiver em execução.
Eu encontrei o processo em execução com:
lsof -i :8081
Do que eu kill 9 ...
o processo.
Depois que eu fechei o Xcode, execute:
npm install
E reiniciei o Xcode, a partir deste momento tudo funcionou como esperado !!
Eu tive o mesmo problema e o corrigi colocando RNFIRMessaging.h acima do React / RCTBundleURLProvider.h
Então, parece que eu vou ficar assim:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Tente o seguinte:
Enfrentei o mesmo problema., Em seguida, excluí o nó .try para usar essas etapas
então construa e veja
Para mim substituindo
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
de
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
no arquivo AppDelegate.m funcionou.
Se você não tiver executado, npm install
é provável que encontre esse problema.
Eu passei por todas as respostas mencionadas acima.
Aqui está a solução trabalhada para mim:
PASSO 1:
Corre:
npm install react-native-fcm --save
Esse resultado ao tornar o diretório em seu projeto em node_modules> react-native-fcm
PASSO 2:
Você precisa adicionar '$(SRCROOT)/../node_modules/react-native-fcm/ios'
aos caminhos de pesquisa do cabeçalho nas configurações de compilação.
Essas duas etapas funcionaram para remover o erro.
Para mais detalhes, você pode acessar estes links:
No meu caso, não pude excluir o node_modules e reinstalar e também não pude fazê-lo react-native-git-updgrade
ou react-native upgrade
porque queria permanecer no RN-0.59 porque .60 causa problemas para minhas dependências.
De qualquer forma, minha situação era a falta do arquivo 'React / RCTBundleURLProvider.h'. Eu já tinha o React disponível nos meus esquemas. Não estava no meu diretório de bibliotecas. Eu verifiquei as configurações de compilação do meu alvo .
Dentro das dependências de destino, eu também tinha o React lá.
Excluí a dependência de destino 'React' e, em seguida, adicionei novamente. pastas de compilação limpas, projeto reconstruído. funcionou.
Estou usando o React Native 0.61. Criei uma extensão de compartilhamento e estava recebendo esse erro. Eu precisava substituir:
#import "RCTBundleURLProvider.h"
com
#import "React/RCTBundleURLProvider.h"
você precisa instalar reagir nativo, na execução do terminal
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
então
brew install node
brew install watchman
npm install -g react-native-cli
fonte:
https://facebook.github.io/react-native/docs/getting-started.html
Verifique se o caminho para o seu projeto não possui espaços. Apenas renomear pastas e excluir espaços resolve o problema para mim.