当前位置: 首页 > 面试题库 >

Swift编译器错误:“框架模块内的非模块化标头”

单于煌
2023-03-14
问题内容

现在,我想将我的ObjC框架迁移到Swift,并遇到以下错误:

include of non-modular header inside framework module 'SOGraphDB'

引用指向仅定义协议的头文件,我在某些类中使用此头文件来使用此协议。

似乎与模块功能有关,但目前尚不清楚如何解决,您知道解决方案吗?

更新:

这是Swift编译器错误。

更新2:

一种快速解决方案(但不能解决根本原因)是将以下设置设置为yes:CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES
= YES


问题答案:

您的标头公开吗?

在项目浏览器中选择头文件。然后,在xcode右侧的部分中,您会注意到目标旁边有一个下拉列表。将其从“项目”更改为“公共”。这对我有用。

公共头



 类似资料:
  • 现在我想将我的ObjC框架迁移到Swift,我得到了以下错误: 引用是一个头文件,它只是定义一个协议,我在某些类中使用此头文件来使用此协议。 似乎与模块功能有关,但目前还不清楚如何修复,你知道解决方案吗? 更新: 这是一个 Swift 编译器错误。 更新 2: 一个快速解决方法(但不能解决根本原因)是将以下设置设置为YES:CLANG _ ALLOW _ NON _ MODULAR _ INCLU

  • 随着互联网的飞速发展,前端开发越来越复杂,导致开发经常出现两个问题: 恼人的命名冲突 烦琐的文件依赖 针对这两个问题,可以使用js模块化技术来解决。当前主流的js模块化有两大规范CMD(Seajs)和AMD规范(RequireJS)。WeX5采用RequireJS(AMD规范)来实现,关于RequireJS的详细说明参考:http://www.requirejs.org/ 接下来我们介绍在WeX5

  • 我只在Spring Boot项目中使用IntelliJ IDE。请注意,我没有使用任何Kotlin项目。但是,今天,我在下面有一个错误。任何专业人士。请帮忙解决这个问题!谢谢,错误:Kotlin:模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.13。

  • 问题内容: 我有一个使用Xcode 10.3构建的VoiceSampler.framework 我正在尝试在新项目的Xcode11中使用该框架。我已经成功添加了该框架,但是当我用AppDelegate 编写时,出现以下错误: 使用Swift 5.0.1编译的模块无法由Swift 5.1编译器导入:/Users/apple/Projects/CaptureAppSwift/VoiceSampler.

  • 问题内容: 我正在尝试按照指令https://github.com/Paytm- Payments/Paytm_iOS_App_Kit/tree/master/Swift/BitCodeDisabled/PaytmNativeSDK将 第三方应用程序集成到项目中 我在构建中看到以下错误 Swift 5.0编译器无法导入使用Swift 4.2.1编译的模块 我尝试了工具链https://medium

  • 本文向大家介绍说明模块化自动化框架。,包括了说明模块化自动化框架。的使用技巧和注意事项,需要的朋友参考一下 在模块化自动化框架中,通过将整个应用程序划分为几个小的自给自足的模块,在模块或集群的基础上开发测试脚本。因此,创建了属于特定模块或集群的各个测试脚本。 属于这些隔离模块的这些脚本可以集成,并且可以由主驱动程序脚本驱动,以在模块之间执行集成测试。所有这些都是在开发模块脚本时使用的通用功能库(包