• RN:报错info Opening flipper://null/React?device=React%20Native


    背景

    ios 上使用 debug 模式的时候,报错:info Opening flipper://null/React?device=React%20Native,我找到了这个 issue

    其实也可以看到现在打开 debug,是 open debug,也不是之前的 debug for chrome 了,这是因为使用新的 Hermes 引擎,从 React Native 0.70 版本开始 Hermes 已经默认启用,无需开发者再做任何配置。具体看 这里

    并且 react native debugger 也不能用了,这里去 https://github.com/jhen0409/react-native-debugger 这里看到
    在这里插入图片描述

    JavaScript 运行时环境

    在使用 React Native 时,你的 JavaScript 代码可能会运行在三个不同的环境上:

    • 从 React Native 0.70 版本开始,React Native 会默认使用Hermes引擎,它是专门为 React Native 而优化的一个新式开源 JavaScript 引擎。
    • 如果 Hermes 被禁用或是较早的 React Native 版本,则会使用JavaScriptCore,也就是 Safari 所使用的 JavaScript 引擎。但是在 iOS 上 JavaScriptCore 并没有使用即时编译技术(JIT),因为在 iOS 中应用无权拥有可写可执行的内存页(因此无法动态生成代码)。
    • 在使用 Chrome 调试时,所有的 JavaScript 代码都运行在 Chrome 中,并且通过 WebSocket 与原生代码通信。此时的运行环境是V8 引擎。(社区也有提供可以在生产环境中使用的react-native-v8)

    方式一:使用flipper调试【推荐】

    后面我看 ignite 也升级了 “react-native” 到 “0.72.5”

    npx ignite-cli@next new PizzaApp
    
    • 1

    方式二:弃用hermes,使用默认的 jscore(JSC)

    还有一种方式,找到 Podfile 文件,将 hermes_enabled 改为 false

    :hermes_enabled => false
    
    • 1

    修改完记得重新 pod install

    方式三:中间方案

    方式二其实是把 hermes 关闭了,一些依赖 hermes 的程序可能有问题。

    要不然就是先无视这个报错,在开发的时候使用方式二,然后项目上线的时候再改回去

  • 相关阅读:
    【归并排序/快排/堆排序】912. 排序数组
    网络爬虫基础
    Try llama2 in NUC (by quqi99)
    320力扣周赛总结
    vue3 ElementUI Switch before-change自动调用问题
    PyQt5 PyQtChart
    springboot整合nacos的入门Demo
    Springboot引入hibernate配置自动建表并进行增删改查
    【日常业务开发】接口性能优化
    软件工程从理论到实践客观题汇总(头歌第一章至第八章)
  • 原文地址:https://blog.csdn.net/weixin_43972437/article/details/133889718