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

在React Native with Expo中无需修改iOS项目,配置添加文件夹至iOS构建

在Expo React Native中添加文件夹到iOS构建流程(无需修改Xcode项目)

完全可以实现,不用直接改动iOS原生项目,通过Expo的配置插件就能达成类似Xcode文件夹引用的效果,文件夹内新增的文件会自动纳入下一次构建。

核心方案:使用Expo Config Plugin

Expo的配置插件允许你在构建过程中自动修改原生项目配置,无需手动操作Xcode。以下是具体实现步骤:

1. 创建自定义配置插件

在项目根目录新建一个插件文件,比如withAssetFolder.js,代码如下:

const { withXcodeProject } = require('@expo/config-plugins');

module.exports = function withAssetFolder(config) {
  return withXcodeProject(config, async (config) => {
    const project = config.modResults;
    const fs = require('fs');
    const path = require('path');

    // 替换为你要添加的目标文件夹路径(相对于项目根目录)
    const assetFolderPath = path.resolve(__dirname, './assets/custom-resources');
    
    // 检查文件夹是否存在
    if (!fs.existsSync(assetFolderPath)) {
      console.warn('目标资源文件夹不存在,请检查路径是否正确');
      return config;
    }

    // 添加文件夹引用到Xcode项目
    const group = project.addPbxGroup([], 'CustomResources', '""');
    project.addResourceFile(assetFolderPath, {
      group: group.uuid,
      sourceTree: '<group>',
      // 开启文件夹引用模式(对应Xcode的"Create folder references"选项)
      createFolderReference: true,
    });

    return config;
  });
};

2. 在项目配置文件中注册插件

打开app.json或app.config.js,在expo字段的plugins数组中添加自定义插件:

{
  "expo": {
    "name": "YourProject",
    "slug": "your-project-slug",
    "plugins": [
      "./withAssetFolder.js"
    ]
  }
}

3. 验证构建效果

运行iOS构建命令:

eas build --platform ios

构建完成后,目标文件夹会以引用形式加入iOS项目,后续在该文件夹中新增的文件,下次执行构建时会自动被包含,效果和在Xcode中手动添加文件夹引用完全一致。

注意事项

  • 务必确认插件中的文件夹路径正确,路径需相对于项目根目录
  • Expo Go开发客户端不支持自定义原生配置,因此该修改无法在Expo Go预览中生效,需使用eas build或expo prebuild生成原生项目后测试
  • 对于二进制文件(如音频、自定义框架等),需确保文件夹结构符合iOS资源规范,避免构建报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:02:06