相关疑难解决方法(0)

Swift编译器错误:"框架模块内部的非模块化头"

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

include of non-modular header inside framework module 'SOGraphDB'
Run Code Online (Sandbox Code Playgroud)

引用是一个头文件,它只定义一个协议,我在一些类中使用这个头文件来使用这个协议.

似乎与模块功能有关,但目前还不太清楚如何修复,你知道一个解决方案吗?

更新:

这是一个Swift编译器错误.

更新2:

快速修复(但不解决根本原因)是将以下设置设置为yes:CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES

frameworks objective-c swift

200
推荐指数
8
解决办法
8万
查看次数

'MyClass + BackdoorExtension.h'的Swift模块伞头警告

当我将我的框架编译成iOS应用程序项目时,我不断收到这些链接器警告:

<module-includes>:1:1: warning: umbrella header for module 'MyFramework' does not include header 'MyClass+StateAccess.h'
Run Code Online (Sandbox Code Playgroud)
…/AppProject/AppClass.m:123:456 warning: missing submodule MyFramework.MyClass_BackdoorExtension' [-Wincomplete-umbrella]
#import <MyFramework/MyClass+BackdoorExtension.h>
Run Code Online (Sandbox Code Playgroud)

然而,不同于这些SO答案:1,2,3 ; 我不希望MyClass+BackdoorExtension.h与框架的所有其他标题混为一谈.  MyClass+BackdoorExtension.h是一个隐藏的"后门"界面,我的框架的MyClass- 使用的的BackdoorExtension的成员应出示error: property 'backdoorMember' not found on object of type 'MyClass *'除非特定的应用程序源文件包括MyClass+BackdoorExtension.h.

在Swift模块之前,这将按预期工作,而不会发出链接器警告; backdoorMember除非应用程序的.m文件有一个#import <MyFramework/MyClass+BackdoorExtension.h>,在添加完所有内容后编译并运行没有警告或运行时问题,否则无法访问.就目前而言,一切都按照预期编译和运行,但我想压制警告(我是那种喜欢将警告视为必须修复错误的开发者类型).我想找到一种方法来使用现有#import的应用Objective-C文件中提到的工作以及在应用程序Swift文件中的等效导入(例如import MyFramework.MyClass+BackdoorExtension).

我在我的框架中试验过explicit modules&explicit headers module.modulemap无济于事.


这是我目前的框架module.modulemap …

xcode frameworks module objective-c swift

7
推荐指数
0
解决办法
683
查看次数

标签 统计

frameworks ×2

objective-c ×2

swift ×2

module ×1

xcode ×1