Dan*_*iel 3 frameworks objective-c ios swift swift-framework
我有一个动态框架MyFramwork.framework,其中 Swift 代码和 ObjC 标头标记为 Protected (在 MyFramwork.framework 内部使用)和 Public (由应用程序外部使用)在框架的项目。MyFramwork.framework 也是 App 中的嵌入式框架
按照这里提到的步骤http://nsomar.com/project-and-private-headers-in-a-swift-and-objective-c-framework/,我创建了一个
module MyFramwork_Private {
header "../...h"
...
export *
}
Run Code Online (Sandbox Code Playgroud)
带有所有受保护的标头(SWIFT_INCLUDE_PATHS = module.modulemap 文件所在目录的路径)
和一个PublicHeaders.h(我在我的伞头中导入的MyFramwork.h)和所有公共头
如何制作使用 MyFramwork 私有代码的公共 Swift 类/结构在 App 中可用?
如果我import MyFramwork_Private在来自 MyFramwork 的 swift 文件中,应用程序在构建 MyFramwork.framework 时,将尝试访问中定义的私有标头module MyFramwork_Private并且构建失败,因为应用程序看不到受保护的标头
我也一直在努力解决这个问题,这就是我发现对我有用的东西:
除了您已经采取的步骤之外,请确保您在 $(SRCROOT)/Myframework 中创建另一个模块映射(例如 MyFramework.private.modulemap)并将以下内容添加到此文件中:
module MyFramework_Private {
export *
}
SWIFT_INCLUDE_PATHS = $(SRCROOT)/MyFramework
MODULEMAP_PRIVATE_FILE = $(SRCROOT)/MyFramework/MyFramework.private.modulemap在此之后,您应该一切顺利,使用您的框架的应用程序现在应该清楚地了解 MyFramework_Private 是什么,并且您的内部 Swift 文件可以访问私有标头。让我知道它是如何为您解决的,如果可以,我很乐意提供帮助。
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |