将 Swift 框架嵌入到另一个框架 Xcode
Posted
技术标签:
【中文标题】将 Swift 框架嵌入到另一个框架 Xcode【英文标题】:Embedding a Swift Framework into another Framework Xcode 【发布时间】:2021-01-12 16:19:13 【问题描述】:我基本上有两个在 Xcode 上运行的框架。 “ResearchKit”和“AppMethods”。虽然一切正常,但“AppMethods”框架使用“ResearchKit”中的代码。事实上,它可以将更多方法抽象到框架中。各种超类。
在代码中使用它们时,我必须导入两个框架
import ResearchKit
import AppMethods
有没有办法在 AppMethods 中嵌入 ResearchKit,这样我只需要导入 AppMethods
。没有ResearchKit
,AppMethods
将不存在。
【问题讨论】:
【参考方案1】:这实际上取决于您在应用程序中实现和使用这些框架的方式。
一般来说,ios 不支持嵌套框架 - 请阅读follwoing。
但是可以在每个框架内完成导入 - 即您可以直接从 AppMethods
导入 ResearchKit
并且只需“告诉”Xcode 代码将在编译时存在,您必须在 App 级别链接框架。我发现了另一个有用的guide
使用CoacoaPods 和SPM 很容易实现
【讨论】:
【参考方案2】:你的“堆栈”是这样的:
App
|
AppMethods (AM for short)
|
ResearchKit (RK for short).
在应用程序的类中,您无需显式调用 RK API(类或方法),您不必导入 RK。否则,你必须导入 RK。
请注意,您可以将一个库嵌入到另一个库中(在这种情况下,RK 位于 AM 中),并且可能确保 AM 之外的任何人都不了解 RK。但是一旦你开始在你的应用程序中显式调用 RK api,除了在 AM 中显式导入 RK 之外别无他法。
【讨论】:
以上是关于将 Swift 框架嵌入到另一个框架 Xcode的主要内容,如果未能解决你的问题,请参考以下文章
无法调试嵌入在 Objective-C 应用程序中的 Swift 模块/框架
将框架从 SwiftPM 嵌入到 Cocoa 应用程序 (XCODE)