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

如何将React Native封装为iOS Framework进行分发?

React Native 封装为 iOS Framework 分发的方案探索与疑问

我正在探索将React Native应用封装为Framework进行分发的可行方案,整体分为三个模块:

  • RN App:包含需通过Framework工具类暴露给客户端应用的模块;
  • iOS原生Swift Framework:将RN App的bundle.js封装在Framework内部;
  • iOS原生Swift客户端App:集成该Framework,通过其中的工具类获取RN模块(如视图)用于客户端UI。

目前Framework通过Cocoapods引入React Native,Podfile配置如下:

target 'TestAppFramework' do
  config = use_native_modules!
  use_react_native!(
    :path => config[:reactNativePath],
    :fabric_enabled => true,  
    :ios_folder => 'TestAppFramework'
  )
end

use_react_native方法会调用RN项目中的react_native_pods.rb,引入约50个依赖Pod。

静态方案问题

默认RN以静态方式引入依赖,Podfile未使用use_frameworks!,预期依赖会被编译进Framework,但将Framework接入客户端项目时,生成的-Swift.h头文件无法找到@import React;,导致编译失败;若在客户端Cocoapods中添加React Native则可运行,但会出现大量重复依赖警告。

疑问:客户端未直接对接RN,为何依赖无法在Framework内正常可见?

动态方案问题

期望仅将bundle.js和Swift接口代码放入Framework,不打包RN依赖Pod,由客户端提供这些依赖,原以为Podfile中使用use_frameworks!可实现,但实际效果与未使用时一致,依赖仍被打包进Framework。

疑问:能否实现Framework不包含依赖Pod,由客户端负责提供?

Cocoapods分发方案问题

考虑将Framework作为Cocoapod分发,但因依赖数量多且react_native_pods.rb中的逻辑难以迁移,看起来不切实际。

疑问:能否在Podspec中实现use_react_native方法在Podfile中的相同功能?

恳请各位提供相关建议!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:37:06