如何在Expo应用中集成Android/iOS原生SDK?
Expo 集成第三方原生 SDK 指南
核心概念先理清
Expo 项目分两种核心工作流,直接决定原生 SDK 的集成方式:
- 托管工作流(Managed Workflow):无本地 android/ios 文件夹,完全依赖 Expo 工具链,不能直接修改原生代码,集成 SDK 必须通过 Config Plugins 或 Expo Modules 实现。
- 裸工作流(Bare Workflow):可通过
expo prebuild生成完整的 android/ios 文件夹,和普通 React Native 项目一致,能直接修改原生代码适配 SDK。
必学主题
1. 工作流区分与选择
先明确当前项目的工作流类型:
- 若用托管工作流:重点攻克 Config Plugins 和 Expo Modules
- 若切换到裸工作流:直接复用普通 React Native 原生集成经验,同时结合 Expo 工具链的特性
2. Config Plugins
这是托管工作流中修改原生配置的核心手段,无需 eject 即可自动处理:
- 学习编写自定义插件,实现 SDK 所需的权限声明、依赖添加、Info.plist/AndroidManifest.xml 配置修改
- 优先查找社区已维护的对应 SDK 的 Config Plugin,减少重复造轮子
3. Expo Modules
当第三方 SDK 需要调用原生 API(如初始化、业务方法调用)时,需封装为 Expo Module:
- 掌握 Expo Module 的分层结构:JavaScript 桥接层 + Android(Kotlin/Java)/iOS(Swift/Objective-C)原生实现层
- 熟悉模块的调试、打包与发布流程
4. Expo Prebuild
若托管工作流无法满足需求,通过 expo prebuild 生成原生文件夹切换到裸工作流:
- 理解 prebuild 会根据 app.json/app.config.js 自动生成适配 Expo 的原生项目
- 生成后可直接在 android/ios 文件夹中做原生修改,同时保留 Expo 的构建、调试工具支持
实用参考资源
- Expo 官方「Config Plugins」文档:覆盖插件编写、配置注入的全流程
- Expo 官方「Expo Modules」文档:从入门到进阶的模块开发指南
- Expo 社区仓库:大量第三方 SDK 集成的开源插件,可参考实现逻辑
- Expo 官方示例项目:包含 Config Plugin 和 Expo Module 的实战案例
内容的提问来源于stack exchange,提问作者spjgoku
相关产品推荐
相关产品推荐

