React-native: RCTBridge exigiu dispatch_sync para carregar RCTDevLoadingView. Isso pode levar a bloqueios

Criado em 15 out. 2017  ·  106Comentários  ·  Fonte: facebook/react-native

Eu recebo este aviso aleatoriamente no início do aplicativo iOS (ou seja, nem sempre).

Este é um relatório de bug?

sim

Você leu as Diretrizes para Contribuição ?

sim

Meio Ambiente

SO: macOS Sierra 10.12.6
Nó: 6.10.2
Fios: 1.0.2
npm: 5.4.2
Vigia: 4.7.0
Xcode: Xcode 9.0 Build versão 9A235
Android Studio: 2.1 AI-143.2915827

Pacotes: (queria => instalado)
reagir: ^ 16.0.0 => 16.0.0
reagente nativo: ^ 0,49,3 => 0,49,3

Passos para reproduzir

  1. Inicie o aplicativo

    Comportamento esperado

Nenhum aviso

Comportamento Real

capture d ecran 2017-10-15 12 49 45

Demonstração reproduzível

N / D

Alguns pacotes que uso

https://github.com/antoinerousseau/react-native-custom-components
https://github.com/rebeccahughes/react-native-device-info
https://github.com/evollu/react-native-fcm
https://github.com/gwmccull/react-native-polyfill
https://github.com/getsentry/react-native-sentry

Bug iOS

Comentários muito úteis

Pare de adicionar +1 s, isso está gerando notificações por e-mail que não adicionam nenhuma informação. Use o recurso "adicionar reação".

Todos 106 comentários

O mesmo aqui!

tenho este problema amarelo para iOS

Eu também vejo isso. Possivelmente relacionado a # 11196.
Eu acredito que é isso que também está causando o travamento do aplicativo ao tentar recarregar; falha com
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

Também estou recebendo esse erro de vez em quando no iOS 11 e não tenho ideia de como depurar isso para fornecer mais informações. Stacktrace não ajuda em nada neste caso.

+1

+1

Pare de adicionar +1 s, isso está gerando notificações por e-mail que não adicionam nenhuma informação. Use o recurso "adicionar reação".

O mesmo problema. Aqui estão os pacotes que uso:

  • react-native-device-info
  • reagir-nativo-interagível
  • react-native-sensitive-info
  • react-native-snackbar
  • react-native-splash-screen
  • react-native-svg
  • react-native-vector-icons

Dada a interseção com a lista de @antoinerousseau , as possíveis localizações para este bug são:

  • Um bug no próprio react-native
  • Um bug em react-native-device-info
  • Vários bugs em bibliotecas diferentes de react-native-device-info

Acabei de adicionar react-native-device-info e mudei de rn 0,49 para 0,50. e agora eu encontrei esse bug. Não sei se é o problema, mas é quando eu entendi isso.

O mesmo problema...
Então não foi minha culpa?

Mesmo problema ... Você tem alguma solução?

O mesmo problema. O único pacote da lista acima que usamos é react-native-sentry .

Mesmo problema aqui hoje, comecei um novo aplicativo e apenas o pacote que adicionei
"base nativa": "^ 2.3.3",
"react": "16.0.0",
"reagir-nativo": "0.50.3",
"react-native-fcm": "^ 10.0.3"

@rizzomichaelg
+1
"reagir nativo": "0,49,3",
app travou ao carregar pela primeira vez aleatoriamente.

alguém resolveu ??

@dantman Comecei a ver o problema imediatamente após instalar o

O único outro pacote que estou usando react-native-keychain, que instalei há um bom tempo sem problemas, então parece uma boa aposta.

rebeccahughes / react-native-device-info # 260 parece ter uma mensagem referindo-se a RNDeviceInfo enquanto este bug se refere a RCTDevLoadingView . Portanto, pode haver mais de um ponto acionando este aviso.

Se você colocasse um ponto de interrupção na seguinte linha:

RCTLogWarn(@"RCTBridge required dispatch_sync to load %@. This may lead to deadlocks", _moduleClass);

Você pode ver qual módulo / pilha é responsável por carregar RCTDevLoadingView no meu caso era RCTCxxBridge.mm que estava carregando o pacote remoto e relatando o progresso do download em RCTDevLoadingView :

... onProgress:^(RCTLoadingProgress *progressData) {
#if RCT_DEV && __has_include("RCTDevLoadingView.h")
      RCTDevLoadingView *loadingView = [weakSelf moduleForClass:[RCTDevLoadingView class]];
      [loadingView updateProgress:progressData];
#endif
    }];

Aqui, o RCTCxxBridge está usando moduleForClass que carregará uma instância do módulo se ainda não estiver disponível. Devido à fila usada para o onProgress block RCTDevLoadingView seria carregado em uma fila não principal, enquanto RCTDevLoadingView requer uma configuração de fila principal.

Consegui contornar o aviso carregando RCTDevLoadingView otimista, retornando uma instância do meu RCTBridgeDelegate usando:
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

Consegui contornar o aviso atualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

reagente nativo: 0.50.4
o mesmo problema...

reagente nativo: 0,51,0
o mesmo problema...

"react": "16.2.0",
"reagir nativo": "0.52.0",
o mesmo problema...

"react": "16.2.0",
"reagir nativo": "0.51.0",
"react-native-device-info": "0.13.0"

Minha solução aqui foi mover react-native-device-info para fora do arquivo pod e vinculá-lo manualmente no projeto. Isso pareceu resolver o problema. Acho que outra abordagem poderia ser incluir CxxBridge como uma subespecificação para React no arquivo de pod, mas isso requer Folly (e, portanto, aumento), e toda a configuração é complicada / leva muito tempo. Se você deseja uma solução rápida, simplesmente remova os pacotes que estão causando o problema.

Sem "react-native-device-info" instalado:
O problema existe em 0.54.2:

"react": "16.3.0-alpha.2",
"react-nativo": "0.54.2",
"react-native-action-button": "^ 2.8.4",
"react-native-admob": "^ 2.0.0-beta.4",
"react-native-animatable": "^ 1.2.4",
"react-native-awesome-alerts": "^ 1.0.7",
"react-native-elements": "^ 0.19.0",
"react-native-fbsdk": "^ 0.7.0",
"react-native-linear-gradient": "^ 2.4.0",
"react-native-parallax-scroll-view": "^ 0.21.0",
"react-native-photo-grid": "0.0.2",
"dimensões-reativas-nativas-reativas": "^ 1.0.2",
"react-native-snap-carousel": "^ 3.6.0",
"react-native-vector-icons": "^ 4.5.0",
"react-navigation": "^ 1.5.7"

Foi com o botão "react-native-action-button": "^ 2.8.4", Adicionando shadowStyle={{shadowOpacity: 0.9}} resolveu o aviso ..

O mesmo problema aqui.

O mesmo problema.
RN 0.54.4

Alguém tem a solução?

O erro vem mesmo para projetos recém-criados / recém-criados.

"react": "16.3.1",
"reagir nativo": "0,54,4"

mesmo

+1

@antoinerousseau alguma atualização sobre este assunto?

Eu não recomendaria a solução fornecida por @devburmistro. Para o meu projeto, a inclusão criou algum tipo de condição de corrida onde esse erro de afirmação se manifestaria aleatoriamente na inicialização ao executá-lo a partir do simulador.

Minha configuração:

react-native-cli: 2.0.1
react-native: 0.53.0

Comecei a ter esse problema agora, depois de configurar meu repo do zero e inserir o código js puro de volta nele. Uma diferença potencial entre o repo anterior e este novo é que agora estou usando Cocoapods.

Alguém não está usando Cocoapods?

Isso aconteceu logo depois que eu adicionei

react-native-blur

a uma visualização Compartilhar Extensão, aninhada em

react-nativo-modalbox

@Babazon, você está usando um depurador quando isso acontece?

Desculpa. Não consegui depurar / registrar o console na visualização Compartilhar extensão, apenas no aplicativo principal.

+1

Obrigado por postar isso! Parece que seu problema pode se referir a uma versão mais antiga do React Native. Você pode reproduzir o problema na versão mais recente, v0.55 ?

Obrigado por suas contribuições.

@ Problema de bot react-native-ainda ocorrendo no React Native 0.55

@ react-native-bot Ao usar cocoapods para gerenciar o react nativo, o problema aparecerá.

versões eu tento 0.50.4 e 0.55.4

Acabei de instalar o react-native-svg no React Native 0.55.3 e este problema apareceu.

screen shot 2018-05-30 at 16 04 07

problema ainda ocorrendo em:

reac-nativo-cli: 2.0.1
reagente nativo: 0.55.4

Estou recebendo exatamente o mesmo aviso com um novo projeto criado, sem nenhum código adicionado, mas apenas as dependências do Firebase injetadas.
Estou usando: react: 16.3.1
reagente nativo: 0.55.4
Obrigado

Estou tendo o mesmo problema, mas, para mim, foi por causa da janela de terminal anterior em execução quando executei novamente a compilação do Xcode. Acabei de sair do terminal e do simulador e executar o build novamente, esse problema foi resolvido.

Eu também tenho o react-native-device-info instalado, mas a mensagem amarela é um pouco diferente para mim: 'RCTBridge required dispatch_sync para carregar RCCManagerModule ...'

Eu ia dizer que recebo este aviso quando eu map em um array para retornar novos elementos ou passar um style prop para componentes personalizados, mas agora o aviso parece imprevisível.

Encontrei esse problema no OS11 também.

  • reac-navegação
  • react-native-vector-icons

Vejo algumas pessoas aqui que mencionaram o uso de ícones vetoriais.

Eu também tive o mesmo problema para mim ao desvincular e remover react-native-device-info e agora aquele aviso não está aparecendo.

Tive o mesmo problema depois de adicionar react-native-vector-icons, removi-o e o aviso foi embora.

Para sua informação, este aviso apareceu hoje após recarregar com o depurador remoto ativado. Desliguei o controle remoto, recarreguei, sem aviso. Liguei novamente o controle remoto, recarreguei, sem aviso.

Para sua informação, este aviso apareceu hoje após recarregar com o depurador remoto ativado. Desliguei o controle remoto, recarreguei, sem aviso. Liguei novamente o controle remoto, recarreguei, sem aviso.

~ Depois de ler o comentário @mokriya , recarreguei o depurador e ele parou de mostrar o aviso. É possível que a movimentação entre o Android e o emulador / simulador IOS com a guia do depurador aberta no navegador esteja causando isso. ~

Não, isso não

iOS 12, RN 0.57.0 mesmo problema.

como resolver?
ou ignorar é?

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['RCTBridge']);

Sim, também estou tendo esse problema depois de adicionar o react-native-video, mas o que isso significa? Não parece impedir a reprodução de vídeos. Além disso, por que todos esses componentes de terceiros estão causando o erro? Estamos perdendo algo no desenvolvimento de nossos módulos nativos?

Obtendo o mesmo problema no iOS 12.1, RN 0.57.4 sem react-native-device-info

Eu tenho algum problema

"lodash": "^4.17.10",
"react": "16.4.1",
"react-native": "0.56.0",
"react-native-check-box": "^2.1.0",
"react-native-collapsible": "^1.2.1",
"react-native-elements": "^0.19.1",
"react-native-google-analytics-bridge": "^5.8.0",
"react-native-google-places-autocomplete": "^1.3.9",
"react-native-map-clustering": "^1.3.0",
"react-native-maps": "^0.21.0",
"react-native-masked-text": "^1.7.2",
"react-native-modal-picker": "0.0.16",
"react-native-onesignal": "^3.2.8",
"react-native-simple-radio-button": "^2.7.2",
"react-native-svg": "^8.0.0",
"react-native-ui-kitten": "^3.0.1",
"react-native-vector-icons": "^5.0.0",
"react-navigation": "^2.11.2",
"rn-sliding-up-panel": "^1.2.1",
"victory-native": "^30.5.0"

No IOS obtendo "RCTBridge exigiu dispatch_snyc para carregar RCTDevLoadingView Isso pode levar a bloqueios."

Talvez você deva Project -> Clean em seu Xcode e, em seguida, execute novamente seu aplicativo.

Confirmei que este comentário é a solução. Obrigado @mattijsf!

Encontre seu RCTBridgeDelegate e substitua o método extraModulesForBridge .

Objective-C

<strong i="11">@interface</strong> MyBridgeDelegate : NSObject <RCTBridgeDelegate>
<strong i="12">@end</strong>

<strong i="13">@implementation</strong> MyBridgeDelegate

- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
{
  return @[
#if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]],
#endif
  ];
}

<strong i="14">@end</strong>

Swift 4

class MyBridgeDelegate: NSObject, RCTBridgeDelegate {
  func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
    var modules: [Any]! = []
    if RCT_DEV == 1 {
      modules.append(bridge.module(for: RCTDevLoadingView.self))
    }
    return modules as? [RCTBridgeModule]
  }
}

Repro no iOS12, RN 0.57.8

image
minha dependência, o mesmo problema

@aleclarson o que exatamente esse código faz?

@ccorcos Ele carrega RCTDevLoadingView antes, então não precisa bloquear a thread principal quando é carregado pelo RN. Este comentário pode ser uma solução mais fácil para você.

Não tenho certeza se isso ainda está acontecendo para outros, mas ainda está acontecendo para mim com RN 0.57.8 + iOS 11.3 (pelo menos)

Estou usando a alteração do comentário acima de @devburmistro com sucesso

Enfrentando este problema

RN 0.58.3
iOS 11.4, 12.1

e isso leva a um impasse. Acontece comigo quando fecho o modal personalizado

Eu não tive isso no 0.57.8 anterior, o que foi ótimo

O mesmo aqui, obtendo isso após a atualização para RN 0.58.3

meu erro exato é: Unable find module for DevLoadingView , as soluções acima não corrigem para mim

screen shot 2019-01-30 at 0 54 04

Parece relacionado a este compromisso, que de fato adicionou RN 0.58.3

https://github.com/facebook/react-native/commit/d7a0c44590bcf3fb9d055aeae3391d5bcd7e21be#diff -a2a67635fffd7b690d14dc17ae563a71

Estou tendo o mesmo problema de "Não foi possível localizar o módulo para DevLoadingView" que @oferRounds após atualizar para RN 0.58.3 hoje.

Parece ser acionado quando um aplicativo é aberto pela primeira vez no simulador. Recargas subsequentes (cmd-R) não apresentam o erro.

EDITAR: apresentou um problema separado para este erro específico: # 23235

Também posso confirmar que esse ainda é um problema no iOS com 0.58.3.

Algumas observações interessantes:

  • Como disse @superguineapig , ele não aparece depois que você recarrega o aplicativo.
  • Se você sair de todas as instâncias de terminal e criar o aplicativo / iniciar o empacotador do zero, ele _não_ mostrará o erro. No entanto, se você mantiver o empacotador aberto e reconstruir o aplicativo a partir do Xcode, o erro aparecerá depois que o aplicativo se anexar ao empacotador novamente.

_Editar: posso confirmar que esta solução alternativa ainda é uma solução viável._

Consegui contornar o aviso atualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

Isso funcionou para mim.

Alguém conseguiu registrar um RCTBridgeDelegate personalizado ao usar a navegação react-native? Você deve conseguir passar um delegado pelo parâmetro bridgeManagerDelegate , mas parece quebrado (o RCTBridge fornecido para extraModulesForBridge é sempre nil ).

Comecei a receber isso imediatamente após adicionar react-native-device-info no RN 0.58.6 e no iOS 12.

OK, este comentário parece ter corrigido para mim.

React Native 0.59.1

Começo a ver este aviso logo após instalar o react-native-device-info, alguma solução real?

Também estou vendo isso aleatoriamente e não fiz nenhuma alteração no código do meu aplicativo além do necessário (config) para fazer tudo funcionar novamente, na atualização de RN 0.57.8 para 0.59.5. No meu caso, lib em questão é CodePush, com 2 avisos de caixa amarela:

RCTBridge required dispatch_sync to load CodePush. This may lead to deadlocks
e
Required dispatch_sync to load constants for CodePush. This may lead to deadlocks

Esta edição é longa. Presumo que descobrir a causa raiz ainda seja um mistério. Deixe-me saber quais outras informações de depuração posso fornecer para ajudar.


Meu package.json:

{
  "name": "wonderswipe",
  "version": "0.0.1",
  "private": true,
  "eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module",
      "ecmaFeatures": {
        "jsx": true
      }
    },
    "env": {
      "browser": false,
      "node": true
    },
    "plugins": [
      "react",
      "react-native",
      "react-hooks"
    ],
    "rules": {
      "comma-dangle": [
        2,
        "always-multiline"
      ],
      "semi": [
        2,
        "never"
      ],
      "react-native/no-unused-styles": 2,
      "react-native/split-platform-components": 2,
      "react-hooks/rules-of-hooks": "error"
    }
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "postinstall": "patch-package"
  },
  "dependencies": {
    "@postlight/mercury-parser": "^2.0.0",
    "@react-native-community/async-storage": "^1.3.3",
    "@react-native-community/viewpager": "^1.1.6",
    "babel-plugin-idx": "^2.4.0",
    "buffer": "^5.2.1",
    "he": "^1.1.0",
    "idx": "^2.5.5",
    "lodash": "^4.17.2",
    "moment": "^2.19.0",
    "moment-timezone": "^0.5.10",
    "node-summary": "../node-summary",
    "react": "16.8.3",
    "react-native": "^0.59.4",
    "react-native-actionsheet": "^2.4.2",
    "react-native-blur": "^3.2.0",
    "react-native-cached-image": "../react-native-cached-image",
    "react-native-cheerio": "^1.0.0-rc.4",
    "react-native-code-push": "^5.3",
    "react-native-custom-tabs": "^0.1.7",
    "react-native-easy-toast": "^1.0.9",
    "react-native-firebase": "^5.3.1",
    "react-native-fit-image": "^1.4.8",
    "react-native-flanimatedimage": "^0.4.0",
    "react-native-highlight-words": "^1.0.1",
    "react-native-keep-awake": "^4.0.0",
    "react-native-linear-gradient": "^2.0.0",
    "react-native-modal-dropdown": "^0.6.2",
    "react-native-modalbox": "^1.6.0",
    "react-native-orientation": "^3.1.3",
    "react-native-parallax-scroll-view": "../react-native-parallax-scroll-view",
    "react-native-rate": "^1.0.8",
    "react-native-safari-view": "^2.0.0",
    "react-native-sentry": "^0.42.0",
    "react-native-sha256": "^1.1.1",
    "react-native-status-bar-size": "^0.3.2",
    "react-native-swiper": "^1.5.14",
    "react-native-tooltip": "^5.2.0",
    "react-native-tts": "^3.0.0",
    "react-native-vector-icons": "^6.4.2",
    "react-native-webview": "^5.7.0",
    "react-native-webview-bridge": "^0.40.1",
    "react-redux": "^7.0.1",
    "redux": "^4.0.0",
    "redux-thunk": "^2.1.0"
  },
  "devDependencies": {
    "babel-eslint": "^10.0.1",
    "eslint": "^5.15.1",
    "eslint-plugin-react": "^7.12.4",
    "eslint-plugin-react-hooks": "^1.0.1",
    "eslint-plugin-react-native": "^3.6.0",
    "patch-package": "^6.1.2",
    "postinstall-postinstall": "^2.0.0",
    "redux-logger": "^3.0.6"
  },
  "resolutions": {
    "babel-core": "7.0.0-bridge.0"
  }
}

image

Corrigi esse erro pelo comentário

No react-native 0.59.3, aqui está como o código deve ser para contornar o problema:

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  #if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]];
  #endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"YourAppName"
                                            initialProperties:nil];

Enfrentando o mesmo aviso após atualizar o arquivo AppDelegate.m durante a integração do mapa react-native-maps google no aplicativo ios.
"react-native": "0.59.5"

Para mim - funcionou ---
"reagir": "16.8.3",
"reagir nativo": "0,59,9",
Arquivo AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
//  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
//                                                   moduleName:@"mobileapp"
//                                            initialProperties:nil];


  NSURL *theurl ;
#if DEBUG
  theurl = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  theurl = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:theurl
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"mobileapp"
                                            initialProperties:nil];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@ amitkumar3968 formate seu comentário como código

Acabei de receber um erro semelhante:
Screenshot 2019-07-23 at 10 27 04


meu package.json:

{
  "name": "auth",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "firebase": "^6.3.1",
    "react": "16.8.6",
    "react-native": "0.60.0"
  },
  "devDependencies": {
    "@babel/core": "7.5.0",
    "@babel/runtime": "7.5.0",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.8.0",
    "eslint": "6.0.1",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.6"
  },
  "jest": {
    "preset": "react-native"
  }
}

Reload corrigiu, mas parece que algo não está certo se isso acontecer aleatoriamente.

Esse problema só acontece comigo quando eu desativo o depurador. Ao abrir o Perf Monitor, notei que a RAM vai de ± 100 MB a ± 300 MB após a desativação.

Com depurador:
Screen Shot 2019-07-25 at 9 07 45 AM

Sem depurador:
Screen Shot 2019-07-25 at 9 08 09 AM

A solução proposta não funciona no meu caso, pois apenas para de exibir o aviso, mas não resolve o problema de memória.

Eu me pergunto se esse problema afetaria o desempenho do aplicativo no modo de lançamento.

A solução alternativa mencionada também resolveu esse problema para mim, no React Native 0.59.10 :

diff --git a/ios/Foo/AppDelegate.m b/ios/Foo/AppDelegate.m
index e446e79..2c28719 100644
--- a/ios/Foo/AppDelegate.m
+++ b/ios/Foo/AppDelegate.m
@@ -18,6 +18,11 @@

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

+// https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+#if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+#import <React/RCTDevLoadingView.h>
+#endif
+
 <strong i="7">@implementation</strong> AppDelegate

@@ -39,6 +44,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(

   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+
+  // https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+  #if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+  [bridge moduleForClass:[RCTDevLoadingView class]];
+  #endif
+
   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"Foo" initialProperties:nil];
   rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

A única diferença aqui é que eu combinei exatamente a mesma lógica para carregá-lo (a parte RCT_DEV && __has_include(<React/RCTDevLoadingView.h>) ) ...

Acabei de obter 2 com react-native-firebase . Acontece raramente, mas:
image
image

Consegui recriar esse problema adicionando ícones de aplicativos ao diretório Images.xcassets/AppIcon.appiconset do meu projeto de teste recém-criado usando o react-native 0.61.2. Adicionar as linhas de menção do código neste problema resolveu o problema para mim.

reagente nativo 0,59,10
o mesmo problema.

mesmo problema aqui !! algum corpo resolveu esse problema?

Consegui contornar o aviso atualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

esta solução alternativa resolveu o aviso. Muito obrigado.

Mesmo problema, mas se eu excluir o bloco de código componentDidUpdate, este aviso desaparece. Mas, mas, mas eu preciso de componentDidUpdate.

primeiro: abra o Xcode, normalmente responda se quiser instalar um componente: clique em instalar

Ao atualizar o software macOS, você deve abrir o Xcode para atualização

Consegui contornar o aviso atualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

@grossingdev qual é o jsCodeLocation, por favor? Eu sei que deveria ser um URL, mas o que deveria apontar?

Acabei de obter 2 com react-native-firebase . Acontece raramente, mas:
image
image

O Firebase está causando esse erro para mim. Importa-se de compartilhar como você resolveu isso? @fungilation

@ abdi4 Acabei de encontrar isso também, você conseguiu resolver?

@zloka não, isso acontece aleatoriamente e não consigo recriá-lo

A maneira mais simples de ignorar este ou qualquer outro aviso é

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

Este problema surge para mim de forma não determinística. A única solução que tenho quando isso acontece é excluir o aplicativo do meu dispositivo e executá-lo novamente.

Solução rápida:

let bridge = RCTBridge (bundleURL: jsCodeLocation, moduleProvider: nil, launchOptions: nil)
#if RCT_DEV
bridge? .module (para: RCTDevLoadingView.self)
#fim se
let rootView = RCTRootView (bridge: bridge !, moduleName: "AppMain", initialProperties: nil)

Olá, parece que não houve nenhuma atividade sobre esse problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Discussão" ou adicioná-lo ao "Backlog" e eu o deixarei aberto. Obrigado por suas contribuições.

Olá, parece que não houve nenhuma atividade sobre esse problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Discussão" ou adicioná-lo ao "Backlog" e eu o deixarei aberto. Obrigado por suas contribuições.

Aqui está sua atividade. O aviso continua a aparecer em novos aplicativos.

@sospedra você poderia fornecer um

Para os casos em que isso acontece com bibliotecas de terceiros, os problemas devem ser arquivados com essas bibliotecas

mesmo problema em 0.63.2 Não tenho certeza do que está causando isso, acontece aleatoriamente, às vezes todas as interações do aplicativo não estão mais funcionando.

O mesmo aviso vem apenas com react-native-macos em recarregamentos
NB: para mim com RN 0.62.2

Recebi o mesmo aviso com um aplicativo Catalyst.

Fechei o simulador, matei metro, no XCode build and run Aviso desapareceu!

Fechar o bundler metro e desinstalar o aplicativo do simulador fez desaparecer o aviso. Mas não tenho certeza do que está acontecendo sob o capô. um aviso apareceu após adicionar o pacote thunk.

Esta página foi útil?
0 / 5 - 0 avaliações