Qual é o significado de 'Nenhum URL de pacote configurável presente' no nativo do react?

199

Quando executo um projeto nativo de reação, recebo um erro no bundle URL present, mas não sei que erros cometi, fiquei muito confuso.

insira a descrição da imagem aqui

Yingch Xue
fonte
2
Eu enfrentei esse problema ao reagir ao aplicativo iOS nativo. Basta abrir o xcodeproj na pasta ios no xcode e executá-lo a partir daí. Verifique se você não está no proxy.
Abhay Shiro 01/01
9
Na maioria das vezes, limpando o diretório de compilação me ajudarm -rf ios/build/
onmyway133
Isso me ajuda na maioria das situações. Mas nesse caso em particular, eu consegui corrigir esse erro com este comando (react-native: "0.60.4"):watchman watch-del-all
O. Borcuhin
Isso geralmente significa que o seu bundler do metrô não está funcionando, algumas pessoas o executam em seus próprios terminais ou no terminal de computador padrão. Normalmente fecho o terminal, reinicio a aplicação e isso corrige-a.
Sara Inés Calderón

Respostas:

128

Resolva o erro No bundle URL present:

  • Execute o seguinte comando no diretório raiz do projeto para excluir o diretório de construção do iOS e eliminar outras sessões do React Native (supondo que estejam em execução na porta padrão 8081) antes de reconstruir:

rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios

  • Atualize seu fluxo de trabalho do React Native para evitar que esses erros ocorram combinando a combinação de comandos acima em um alias e anexando-o ao arquivo de configuração do Bash .bashrc com este comando:

echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc

Agora você pode executar a versão do React Native iOS (sem se preocupar com a exibição de algumas das telas de erro vermelhas comuns da morte) com um atalho simples de alias:

rni

Luke Schoen
fonte
1
Muito útil para mim. A única outra coisa que eu precisava fazer era sair do simulador, se ainda não estiver fechado.
AnnawanDev
74

Também acabei de encontrar esse problema (primeira vez que comecei a usar o React Native). O problema desapareceu quando - enquanto uma simulação ios ( react-native run-ios) estava em execução - eu corri npm installe react-native run-iosnovamente. Na janela do terminal, mostrou que estava agrupando e, em seguida, o simulador mostrou a tela de boas-vindas.

Verifique este link para obter resumos após a react-native init PropertyFinderlinha, tente usar npm start(este funciona para mim)

==================================================== ======================

ATUALIZAÇÃO para 16.9

Minha porta 8081 foi bloqueada pela McAfee. Usar uma porta diferente diretamente não estava funcionando react-native start --port=8082ereact-native run-ios --port=8082

Tentei quase todas as soluções dadas aqui. mas nada não funcionou.

        "react": "16.9.0",
        "react-dom": "^16.12.0",
        "react-native": "0.61.5",

Solução:

Pesquisou 8081 no Xcode e substituiu todos eles por 8082. Em seguida, execute os mesmos comandos para criar e executar o aplicativo. App funciona sem problemas

react-native start --port=8082
react-native run-ios --port=8082

insira a descrição da imagem aqui

Skip Suva
fonte
2
@dcp Você já tentou executar o "react-native run-ios" várias vezes enquanto ele já estava inicializado? Parece que toda vez que eu uso meu aplicativo, preciso fazer isso pelo menos duas vezes (aguardando cerca de 2 minutos entre cada vez).
Skip Suva
funciona para mim, mas gostaria de encontrar uma correção de longo prazo que não envolvesse essa etapa a cada vez.
Mheavers
31

Tive o mesmo problema ao empacotar meu aplicativo. Verifique se o seu main.jsbundlealvo está no seu projeto principal

analisar
fonte
3
De alguma forma, isso aconteceu comigo como parte da minha atualização 0.60 do react-native.
IonicBurger
link do vídeo para o mesmo, youtube.com/watch?v=eCs2GsWNkoo
jrhamza 03/02
Isso também me aconteceu. mas então eu cliquei nele. mas ainda o mesmo problema
Jason G
29

Conforme instruído na mensagem de erro:

Concordando com a licença Xcode / iOS requer privilégios de administrador, execute "sudo xcodebuild -license" e tente novamente este comando.

A execução do seguinte comando funcionou:

sudo xcodebuild -license
cwRichardKim
fonte
tks este é um trabalho para mim depois de correr no terminal e construção no Xcode depois
Tess Hsu
Não. Ainda não funciona para mim. Estou executando em uma porta diferente, 8081 está bloqueado
Ashish Singh Rawat 23/01
27

Esse problema ocorre quando você não permite conexões não seguras via localhost ou talvez você tenha tentado aceitar conexões não seguras via http.

Para corrigir isso, adicione-o em info.plist:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>
Witalo Benicio
fonte
4
Que herói esse cara é. Salvou eu e meu macbook de pular pela janela! Eu havia mudado meu domínio de exceção de localhostpara o meu endereço de rede local no Info.plist e, portanto, não estava resolvendo. Eu adicionei um bloco para 'localhost' como um domínio de exceção e funcionou.
11558 Darius
1
Sério, sua resposta veio como um deus para mim ... irmão, você é demais ..... Eu não tenho palavras. obrigado, fiquei preso a partir de quinta-feira.
Tushar Pandey
26

Feche o seu simulador e o terminal. Abra um novo e vá para o seu projeto, depois atualize o seu react-native como este:

react-native upgrade

Problema em: recursão infinita no RCTFatal quando o pacote falha na execução .

Mateo Marconi
fonte
1
sim, mas no meu caso não precisei atualizar. Fechar o terminal e o simulador foi o suficiente para mim.
Gianni #
@gianni Qual versão do react-native você está executando agora?
Mateo Marconi
1
Não pareceu fazer nenhuma diferença, ainda vendo o erro.
SSH Este
2
Isso funcionou para mim, mas você tem que fechar o simulador bem e depois executar reagir nativos run-ios
James O'Brien
1
Não ajudou `` `info Nenhuma versão passada. Buscando o mais recente ... aviso A versão especificada "0.61.5" já está instalada no node_modules e atende ao intervalo de semver "0.61.5". Não é necessário atualizar `` ''
Ashish Singh Rawat
19

Razão:

Isso ocorre porque o aplicativo não pode descobrir o servidor (que serve a interface do usuário - por código javascript).

Solução:

  • Certifique-se de que tudo relacionado à reação do nativo seja fechado (não é necessário, apenas para ter um início limpo para a minha solução, após a minha explicação, você pode descobrir que isso é necessário ou não)
  • correr npm run startouyarn start primeiro
  • aguarde este trabalho de comando concluído (geralmente você verá Loading dependency graph, done. )
  • corre react-native run-ios/android

Explicação:

  • O React Native vem com 2 partes:

    • Parte nativa
    • Parte Javascript
  • Comandos de construção:

    • react-native run-ios/androidé criar parte nativa, implantar nos dispositivos e iniciar o aplicativo nos dispositivos (simulador / emulador / dispositivo real). Isso geralmente levava de 3 a 4 minutos para terminar.

    • npm run startou yarn starté criar a parte javascript e iniciar o servidor dev para servir a interface do usuário incorporada ao aplicativo. Isso geralmente levava 30 segundos para terminar.

=> Normalmente, a parte do javascript terminou primeiro e a parte nativa veio depois. (com base no tempo que eles usaram).

=> isso é verdade apenas pela primeira vez (compilação nova).

=> para reconstruir:

  • A parte nativa levou apenas 10 a 15 segundos para verificar as alterações e porque nenhuma alteração na parte nativa => foi feita antes da parte javascript ser criada e veiculada. (Não tenho certeza de que a parte do javascript foi reconstruída ou não, mas levou muito tempo que a parte nativa)

  • É por isso que tivemos esse problema, o aplicativo foi executado e exigia algo que ainda não existia.

Bônus:

  • react-native run-ios/android iniciará automaticamente o servidor de desenvolvimento para você.
  • É por isso que quando você correu react-native run-ios/androidlogo depoisreact-native init <app_name> , tudo correu bem. (porque o recurso de início automático e o tempo necessário para a construção foram atualizados acima).
  • Outras soluções de "remoção" funcionaram porque forçaram a reconstrução.

O tempo usado nesta resposta foi relativo à minha máquina => pode ser diferente nos outros.

Khoa
fonte
14

Tente executar este código:

$ sudo xcodebuild -license

Isso pode corrigir o problema. Isso funciona para mim.

Kusal Kithmal
fonte
11

Eu tive o mesmo erro e só consegui executar o aplicativo através do Xcode. react-native run-iosnão funcionou. Para resolver o problema, você precisa remover a buildpasta em YOUR_PROJECT/ios/build/. Depois disso, você poderá executar seu aplicativo react-native run-iosnovamente. Espero que isto ajude.

sonlexqt
fonte
9

Na maioria dos casos, esse problema ocorre quando a pesquisa de DNS / pesquisa de IP falha ao localizar o host local.

Solução:

Tente adicionar o IP do host local ao seu arquivo host etc.

você pode adicionar as linhas abaixo ao seu arquivo host etc (/ etc / hosts)

127.0.0.1 localhost

255.255.255.255 broadcasthost

:: 1 l. ocalhost

Para confirmar que esse é o problema, você pode acessar o URL do pacote no safari (se você tentar no chrome, isso resolverá, mas o safari não poderá resolvê-lo). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false

Vivek
fonte
Depois de migrar para um computador novo, era disso que eu precisava. TY!
precisa saber é o seguinte
Sim mesmo aqui em um novo computador!
Vishal Sakaria
Meu problema foi definir o proxy na minha configuração de rede, apenas removi o proxy e funciona bem.
Ahmad Khani
8

Verifique se as configurações do ATS estão corretas no arquivo .plist.

Você pode encontrar o arquivo em /ios/{{project_name}}/Info.plist

localhost deve ser definido como um destino de solicitação de exceção como este:

<key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

* (não se esqueça de remover isso na versão de lançamento ..)

Serdar Değirmenci
fonte
7

Para mim, o problema era que não era possível criar o pacote JS. Ele não indica o erro ao criar a partir do Xcode, portanto não há como você saber disso. Para encontrar o erro, execute o seguinte comando.

react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle

Para mim, o erro foi algo com o componente PureRenderMixin ausente. Para a qual a solução pode ser encontrada aqui: https://github.com/facebook/react-native/issues/13078 . Basicamente, você precisa instalar manualmente o [email protected]. Isso pode ser feito através da execução deste comando.

npm i --save [email protected]

Esse problema agora está acontecendo para todo mundo porque versões mais recentes de alfas de reação estão sendo lançadas (particularmente alpha.5) e estão quebrando construções nativas de reação.

urbancvek
fonte
o comando 'bundle react-native --platform ios --dev false - arquivo de entrada index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/ main.jsbundle 'descreverá qualquer erro na criação do pacote. até que este comando seja bem sucedido, o run-ios não funcionará
eric f.
meu erro atual é que o '@connect' do 'react-redux' não é reconhecido de alguma forma?
eric f.
Talvez tente adicionar "plugins": ["transform-decorators-legacy"]ao seu arquivo .babelrc. Ou tente com o HOC de conexão.
urbancvek
@urbancvek, para mim o erro é este The node type SpreadProperty has been renamed to SpreadElemente sua @babelbiblioteca de referências dentro de node_modules, não encontrei nada que resolvesse isso.
Daniel
7

Solução -> npm startabra o novo Terminal, vá para o caminho do seu projeto e pressione react-native run-ios-o funciona para mim

rahul.sapkal23
fonte
7

O que resolveu isso para mim:

  • Abra uma janela do terminal
  • cd para dentro YOUR_PROJECT/ios
  • Remova a pasta de compilação com rm -r build
  • Corra react-native run-iosnovamente

Como alternativa, você pode abrir o Finder, navegar YOUR_PROJECT/iose excluir obuild pasta.

Então corra react-native run-ios novamente.

Fonte: Andrew Bancroft

l3aronsansgland
fonte
5

Este é um problema com o react-native v0.42.1. Tente fechar todas as instâncias de terminal e XCode e execute:

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
Shobhit Sharma
fonte
3
"Este é um problema com o react-native v0.42.1." - Também existe com a v.0.43.
Dcp
5

primeiro feche o simulador e depois execute-o no terminal

npm install

react-native run-ios
Pramodya Abeysinghe
fonte
5

Basta executar no Terminal react-native start:

cd your react native app directory/ react-native start 

Ele iniciará o empacotador, agora não feche esta janela do terminal, em outra janela do terminal execute o seu projeto. Este é o único desejo que eu encontrei para fazê-lo funcionar corretamente.

Prakash salawria
fonte
4

Eu descobri que a maneira mais fácil / rápida de ignorar isso é sair do aplicativo dentro do simulador (2 x Cmd + Shift + H) e reiniciar.

Toby Flemming
fonte
4

Eu tive esse mesmo problema. Mas meu problema era que meu Mac e iPhone não estavam na mesma rede wifi.

Portanto, verifique se todos estão na mesma rede e reconstrua novamente. Se não for esse o caso, tente as soluções mencionadas por outros membros aqui.

Abraham Jagadeesh
fonte
3

verifique seu proxy de rede, melhor desligá-lo.

ou você deve encontrar uma outra maneira de manter o servidor do empacotador

user1684758
fonte
Obrigado, abri a VPN global para atravessar a Grande Muralha de Fogo!
BaiJiFeiLong
Desativei a configuração automática de proxy no Mac. Funcionou após 2 dias de esforços: D ... Obrigado.
Nirav Jain
Na verdade, eu estava executando uma VPN da qual nem me lembrava. desligá-lo funcionou!
Pedro Marques
3

Isso aconteceu comigo também, depois de reiniciar o meu mac. Há uma janela do terminal launchPackager se abrindo quando você executa o aplicativo no simulador. Fechei a janela e encerrei o processo (eu também fechei o simulador), depois executei novamente o react-native run-ios e tudo funciona bem.

gianni
fonte
3

No meu caso, o problema foi corrigido reiniciando o adbservidor:adb kill-server && adb start-server

Grzegorz Pawlik
fonte
3

Eu também tive esse problema ... o problema era que o empacotador não estava sendo executado, parecia provavelmente porque meu shell padrão era zsh. reagir com pneus nativos para abrir uma nova janela do terminal e executar, .../node_modules/react-native/packager/launchPackager.commandmas isso não ocorreu. Executar manualmente isso (e mantê-lo funcionando) corrigiu isso para mim.

Chris
fonte
3

verifique sua chave 'localhost' no ditado NSExceptionDomains em info.plist

se não existir, causa erro.

ogelacinyc
fonte
2

Supondo que você esteja usando nvme várias versões do nó instaladas, aqui está a solução:

  1. Dizer que você executar npm install -g react-native-cliemnode v6.9.5 .
  2. Agora faça node v6.9.5 como padrão executandonvm alias default 6.9.5
  3. Agora corra react-native run-ios

O problema é que você tem várias versões do nó instaladas via nvme, para instalar, react-native-clivocê alternou ou instalou a versão mais recente do nó, que ainda não está marcada como nó padrão para o qual apontar nvm. Quando você executa react-native run-iosisso, abre outra nova janela de terminal na qual o padrão nvmnão está apontado para a versão do nó em que você instalou react-native-cli. Basta seguir a configuração acima, espero que ajude.

Syed
fonte
2

verifique se você possui .jsbundle em seu projeto

Adicionar

react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios

no seu código nativo de reação, tente reabrir o projeto

Saloni Parikh
fonte
1

Eu estou trabalhando com RN 0.49.5. Eu tentei muitos métodos, mas ninguém funciona. Finalmente eu resolvi isso. É simples e fácil.

A idéia principal é mudar localhostpara 127.0.0.1, mas não é onde o RN diz. Está no RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) host .

Mudanças de código: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; isso é bom para o simulador. Se for um dispositivo, basta alterar o endereço IP para o da sua máquina.

Bruce Lee
fonte
Você poderia elaborar sua solução?
Ashish Singh Rawat
1

Outra coisa que funciona para mim é abrir o projeto no xcode, depois limpá-lo e construí-lo. geralmente ele executa novamente o servidor de empacotamento e resolve o problema.

Eliran Goshen
fonte
1

Execute o comando abaixo:

killall -9 node
rm -rf ios/build
react-native run-ios

ele abrirá o launchpackager.command e o aplicativo será instalado no simulador ios

Saif Siddiqui
fonte
0

Verifique se launchPackage.commandestá funcionando em um terminal e tente executar novamente. Ele criará o pacote. É como o webpack-dev-server.

Codler
fonte