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

iOS自定义Framework加open修饰符后Eureka模块未找到错误求助

问题原因及解决方法

问题原因

当用open修饰类时,该类会成为Framework的公开API。Xcode在构建Framework的公开接口时,要求所有被公开类直接引用的外部模块(如Eureka)必须被标记为Framework的公开依赖。如果Eureka仅作为私有依赖被链接(CocoaPods默认安装时的状态),Xcode会因为外部项目无法访问到Eureka模块,而抛出module 'Eureka' not found的错误。

而不加open时,类属于内部访问级别,Xcode仅在Framework内部构建时检查依赖,不需要对外暴露Eureka,因此不会触发这个错误。

解决方法

方法1:通过CocoaPods配置公开依赖(推荐)

  1. 确认你的Podfile已开启use_frameworks!,并为Framework target正确引入Eureka:
use_frameworks!

target '你的Framework名称' do
  pod 'Eureka'
end
  1. 执行pod install,打开生成的.xcworkspace文件(必须用workspace而非单独的xcodeproj)。
  2. 在Xcode中选中你的Framework target,进入Build Phases -> Link Binary With Libraries:
    • 找到Eureka.framework,点击其右侧的权限下拉菜单,将Status改为Public。
  3. 执行Cmd+Shift+K清理项目,再重新构建即可。

方法2:手动调整依赖状态(非CocoaPods场景)

  1. 将Eureka.framework添加到你的Framework项目的Linked Frameworks and Libraries中。
  2. 在该列表中,将Eureka.framework的Status设置为Public。
  3. 确保Eureka.framework被添加到Embedded Binaries(若为动态框架),并验证Framework Search Paths包含Eureka的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:12:18