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

集成AWS Amplify的Expo项目iOS测试连开发服务失败及重复文件报错如何修复

报错原因
  • 重复文件错误(DuplicateError)根因:执行amplify pull后,Amplify会在本地生成两份云函数配置文件,分别存放在amplify/#current-cloud-backend和amplify/backend目录下。React Native原生端打包依赖的jest-haste-map会全量扫描项目文件,重名的配置文件会触发命名冲突,直接导致打包转换器初始化失败,开发服务无法正常启动。
  • iOS连接错误是上述问题的衍生现象:Web端打包器的文件扫描规则与原生端不同,未触发重复文件校验因此可以正常运行;而iOS端请求bundle资源时,开发服务已经因为打包错误停止响应,因此抛出连接失败报错。
修复方案
  1. 配置Metro打包忽略规则
    在项目根目录找到metro.config.js(不存在则新建),添加如下配置,让打包器跳过Amplify的云同步缓存目录:
const { getDefaultConfig } = require('expo/metro-config');

const config = getDefaultConfig(__dirname);

// 忽略amplify的重复配置目录
config.resolver.blockList = [
  /amplify\/#current-cloud-backend\/.*/,
];

module.exports = config;
  1. 清除缓存重启服务
    执行如下命令清除所有打包缓存,避免旧的扫描规则残留:
    npx expo start --clear

  2. 可选临时方案
    如果不需要本地修改Amplify后端配置,也可以直接删除amplify/#current-cloud-backend目录解决问题,但后续重新执行amplify pull后会再次生成该目录,需要重复删除,更推荐使用Metro配置的方案永久解决。

内容的提问来源于stack exchange,提问作者patataskr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:54:00