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

Expo Managed Workflow项目如何改造以支持原生代码配置?

改造Expo Managed项目以支持原生代码配置

1. 先把Prebuild用对

你执行prebuild后没看到变化,大概率是命令没执行到位:

  • 先确认项目根目录的app.json/app.config.js里,已经配置了ios.bundleIdentifier和android.package(这是生成原生项目的必填参数)
  • 执行命令时要指定平台,比如npx expo prebuild --platform ios或npx expo prebuild --platform android,不加平台参数默认会生成两个平台的原生代码
  • 执行完成后,项目根目录会多出ios和android文件夹,这就是你要的原生项目目录,后续所有原生配置都在这里操作

2. 保留TypeScript开发逻辑

所有业务代码、UI组件依然可以用TypeScript写在原有的src或项目根目录下,和之前Managed Workflow的开发方式完全一致。Expo会自动把这些TS代码打包到原生项目里,不需要额外调整。

3. 自定义原生权限配置

iOS端

  • 打开ios/[你的项目名称]/Info.plist,添加需要的权限描述,比如相机权限:
    <key>NSCameraUsageDescription</key>
    <string>需要访问相机拍摄照片</string>
    
  • 如果要改依赖配置,直接编辑ios/Podfile,之后执行npx pod-install ios安装依赖即可

Android端

  • 打开android/app/src/main/AndroidManifest.xml,添加权限声明,比如定位权限:
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
  • 如需修改gradle配置,直接编辑android/app/build.gradle或android/build.gradle

4. 后续开发与构建

  • 日常开发继续用npx expo start,Expo会自动识别原生目录的修改,同步到开发环境
  • 打包正式版时,既可以用npx expo run:ios/npx expo run:android直接编译原生项目,也可以用Expo云构建(但云构建需要开启experimental.prebuildFromNative选项,才能识别你在原生目录的自定义修改)

5. 注意事项

  • 别随便执行npx expo prebuild --clean,这个命令会重置原生目录,之前自定义的原生代码会丢失。如果想让配置持久化,可以把权限这类配置写到app.config.js的ios.infoPlist/android.androidManifest字段里,这样prebuild时会自动同步这些配置
  • 不要删除ios和android目录,否则得重新执行prebuild生成
  • 原生代码修改后如果遇到依赖冲突,得手动排查Podfile或gradle的配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:45:06