在动态框架中使用 Realm?

Using Realm in a dynamic framework?

我打算将我的 iOS 应用程序移植到 OS X(之后可能是 tvOS)。它使用美妙的境界进行持久化。我目前正在将我的应用程序中的数据模型分解为一个动态框架,我打算在 iOS 和 OS X 目标中使用它来共享该代码,因为它是完全独立于 UI.

我想知道将 Realm 包含在这里的最佳方法是什么。我将不再需要/希望它依赖于应用程序本身,但我希望应用程序依赖于动态框架,然后该框架依赖于 Realm。我不介意这是如何完成的,即我对 Cocoapods 没有特别的依赖。

这个想法是应用程序本身看不到也不关心 Realm 或框架内部使用的持久性模型。像这样:

iOS App -> Dynamic Framework -> RealmSwift

OS X App -> Dynamic Framework -> RealmSwift

tvOS App -> Dynamic Framework -> RealmSwift

-> = Depends on

我还希望,如果可能的话,让它变得聪明,并包括 iOS 或 OS X 构建的 Realm,这样我需要做的就是构建在我的 Xcode 项目中各自的目标,它会抓住正确的框架,正确的 Realm 版本,一切都会好起来的。

我该怎么做? Cocoapods 会允许这样做吗?动态框架首先是正确的想法吗?我应该为动态框架制作一个 podspec 吗?

您可以通过在动态框架的 podspec 中定义 s.dependency "Realm" 来创建中间件,如果您将其视为应用程序中的另一个 pod,那么您可以拥有一个很好的抽象层,让您在 Realm 之上工作具体来说,我通过 ARAnalytics.

进行分析

就现实世界 linking 而言,您必须 link Realm 到您的应用程序,但运行时不容易允许确定特定于另一个库的依赖项的范围,因为它们存在于平面对象图中。