You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决EAS构建的Expo生产APK中的React Native ViewPropTypes错误

如何解决EAS构建的Expo生产APK中的React Native ViewPropTypes错误

我完全懂你现在的头疼事儿——调试的时候手动改了React Native的源码,总算把ViewPropTypes的错误搞定了,结果用EAS打包生产APK的时候,老问题又冒出来了。这是因为EAS构建时会重新拉取依赖包,你本地手动改的代码根本不会被带到构建环境里。不过别担心,咱们用patch-package这个工具就能解决这个问题,让修复在构建时自动生效。

具体解决步骤:

  1. 安装必要工具和依赖
    首先安装patch-package(用来生成和应用依赖补丁),以及deprecated-react-native-prop-types(就是你之前用来替换ViewPropTypes的包):

    # npm 用户
    npm install patch-package postinstall-postinstall --save-dev
    npm install deprecated-react-native-prop-types --save
    
    # yarn 用户
    yarn add patch-package postinstall-postinstall --dev
    yarn add deprecated-react-native-prop-types
    
  2. 手动修改React Native源码(和你之前调试时的操作一样)
    找到你项目中node_modules/react-native里需要修改的文件(比如引用了ViewPropTypes的Libraries/Components/View/View.js等),把原来的:

    import { ViewPropTypes } from 'react-native';
    

    替换成:

    import { ViewPropTypes } from 'deprecated-react-native-prop-types';
    

    确保所有出现ViewPropTypes的地方都替换正确。

  3. 生成持久化补丁
    在项目根目录运行以下命令,生成补丁文件:

    npx patch-package react-native
    

    执行完后,项目根目录会多出一个patches文件夹,里面存放着针对react-native包的补丁文件,把这个文件夹提交到你的Git仓库里。

  4. 配置自动应用补丁的脚本
    打开项目的package.json,在scripts部分添加postinstall脚本:

    "scripts": {
      // 保留你原来的其他脚本,比如 "start": "expo start" 等
      "postinstall": "patch-package"
    }
    

    这样每次安装依赖(包括EAS构建时的依赖安装步骤),都会自动执行这个脚本,把补丁应用到react-native包上。

  5. 重新用EAS构建APK
    现在你可以重新触发EAS构建了,这次构建过程中,EAS会先安装所有依赖,然后自动应用咱们生成的补丁,React Native的代码就是修复后的版本,不会再出现下面的错误了:

    01-31 18:26:47.548 18926 18982 E ReactNativeJS: Invariant Violation: ViewPropTypes has been removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'.

额外注意点:

  • 如果之后你升级了react-native的版本,需要重新执行步骤2和3,生成新的补丁文件,因为版本升级可能会覆盖原来的修改。
  • 提交代码时,别忘了把patches文件夹一起提交,这样EAS构建环境才能获取到补丁文件。

备注:内容来源于stack exchange,提问作者derik_12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:24:07