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

如何为iOS库项目添加框架?React Native封装遇Module未找到问题

问题分析与解决方案

为什么应用项目可行但库项目不行?

CocoaPods对可执行项目(示例应用)和库项目的依赖打包逻辑完全不同:

  • 示例应用是可执行目标,CocoaPods默认会把所有依赖打包成静态库libPods.a,并自动配置Xcode的模块搜索路径,所以@import能正常识别。
  • 你的RN封装库是静态/动态库目标,CocoaPods默认会把依赖合并为Pods.framework,但库项目的Build Settings没有自动继承Pods的模块映射配置,导致Xcode找不到MyTargetFramework的模块定义。

正确的配置步骤

  1. 修正Podfile配置
    针对库项目,需要明确指定target并开启模块化相关配置,示例Podfile如下:

    platform :ios, '13.0' # 匹配你的最低iOS版本
    
    target 'YourRNLibraryName' do
      use_modular_headers! # 如果MyTargetFramework是静态框架,用这个;如果是动态框架,用use_frameworks!
      pod 'MyTargetFramework'
    end
    
    target 'YourExampleApp' do
      use_modular_headers!
      pod 'YourRNLibraryName', :path => '../' # 关联你的RN库项目
    end
    
  2. 检查Build Settings继承
    打开库项目的Build Settings,确认以下选项包含$(inherited):

    • Framework Search Paths
    • Header Search Paths
    • Other Linker Flags
      这一步是让Xcode继承CocoaPods自动生成的依赖路径配置。
  3. 调整导入方式(可选)
    如果还是报错,尝试用传统的头文件导入代替模块导入:

    #import <MyTargetFramework/MyTargetFramework.h>
    
  4. 清理重建项目
    执行以下操作彻底清理缓存:

    • 删除Xcode的DerivedData文件夹(可通过Xcode -> Preferences -> Locations找到路径)
    • 终端执行pod deintegrate,然后pod install
    • Xcode中执行Product -> Clean Build Folder,再重新构建

关键注意点

你的RN库最终是要被示例应用(或其他RN项目)引入的,所以要确保:

  • 库项目的依赖不会和宿主应用的依赖冲突
  • 若MyTargetFramework是私有框架,要在Podfile中正确配置它的源路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:48:21