iOS混合动态框架 – 将objc标头与私有模块桥接
关于“动态框架”目标,我需要将内部(私有) objective-c
标头桥接到我的swift
对应框架。
根据我的理解,我需要使用私有模块。
其中一些快速的对应物使用@objc class TheClass
语法桥接回objective-c。
我继续在$SRCROOT
下的目录中创建了module.modulemap
和module.private.modulemap
文件,并在构建设置中添加了“必要”标志。
SWIFT_INCLUDE_PATHS =>$(SRCROOT)/...
我还尝试在构建设置中添加“私有模块映射文件”
我的模块映射文件是:
module InnerModule { export * }
和私有模块文件是:
explicit module InnerModule.Private { header "../Classes/Header1.h" header "../Classes/Header2.h" ... export * // and have tried without it }
在我添加的所有相关Swift文件中
import InnerModule.Private
现在,在构建项目时,我的swift桥头中出现错误
#import // getting an error here MyFramework-Swift.h // generated header file @import UIKit; @import ObjectiveC; @import InnerModule.Private; Module InnerModule not found
怎么解决这个问题?
事实certificate,在编译框架之后,您可以转到框架标题,删除您不想公开的所有“私有”标头。
之后,您可以从“Headers”目录中删除不想公开的所有头文件。
按预期工作