我有一个动态框架MyFramwork.framework
,该框架项目中的Swift代码和ObjC标头分别标记为Protected(在MyFramwork.framework中内部使用)和Public(由App内部使用)。 MyFramwork.framework也是App中的嵌入式框架
按照此处http://nsomar.com/project-and-private-headers-in-a-swift-and-objective-c-framework/所述的步骤,我创建了一个
module MyFramwork_Private {
header "../...h"
...
export *
}
具有所有受保护的标头(
SWIFT_INCLUDE_PATHS
= module.modulemap文件所在的目录的路径)和一个
PublicHeaders.h
(我将其导入到我的伞形标题MyFramwork.h
中)和所有 public 标题如何使用App中可用的MyFramwork private 代码制作Public Swift类/结构?
如果我在MyFramwork的快速文件中
import MyFramwork_Private
,则App在构建MyFramwork.framework时将尝试访问module MyFramwork_Private
中定义的 private 头,并且构建失败,因为App无法看到受保护的头 最佳答案
我也一直在为此苦苦挣扎,这就是我发现对我有用的方法:
module MyFramework_Private { export *
}
SWIFT_INCLUDE_PATHS = $(SRCROOT)/MyFrameworkMODULEMAP_PRIVATE_FILE = $(SRCROOT)/MyFramework/MyFramework.private.modulemap
在此之后,您应该会很好,使用框架的应用程序现在应该清楚地了解MyFramework_Private是什么,并且内部Swift文件可以访问 private 标头。让我知道如何为您解决问题,如果可以的话,很高兴为您提供帮助。