在多个平台上设置使用 Realm 的 Xcode 框架

Setting up an Xcode framework that uses Realm, on multiple platforms

任何有关如何为以下配置设置 Xcode & Realm 的帮助将不胜感激。我真的不知道从哪里开始。

Amazing.app
--AmazingTodayExtension.appex
--AmazingWatchKitApp.app/.appex
--DataKit.framework
----Realm.framework
----RealmSwift.framework

DataKit 的目的是在主机 iOS 应用程序、Today Extension 和 watchOS Extension 之间共享一个通用模型。我的头脑说我应该将 RealmRealmSwift 链接到 DataKit 框架,然后将 DataKit 链接到主机应用程序和两个应用程序扩展。

这就是我卡住的地方。我读过的所有指南都谈到在将它们添加到项目时选择 ios/swift2.1/Realm.frameworkwatchOS/swift2.1/Realm.framework。这两者都需要?!

感谢您的帮助:)

您应该为 iOS 和 DataKit 的 watchOS 架构创建两个目标。比如DataKit-iOSDataKit-watchOS(像Realm项目一样,使用xcconfigs,也可以在一个target中对应多个架构。不过一开始做两个比较容易目标。)

然后 Link DataKit-iOSRealmRealmSwfit 用于 iOS,link DataKit-watchOS 用于 watchOS 框架。

您可以像 Realm 一样在 DataKit-iOSDataKit-watchOS 之间共享所有模型代码。您可以通过构建设置中的 "PRODUCT_NAME" 和 "DataKit" 使框架同名。

所以我建议采用以下结构。

├── Amazing.xcodeproj
├── AmazingTodayExtension
├── AmazingWatchKitApp
├── AmazingWatchKitApp\ Extension
├── DataKit
└── Frameworks
    ├── iOS
    │   ├── DataKit.framework
    │   ├── Realm.framework
    │   └── RealmSwift.framework
    └── watchOS
        ├── DataKit.framework
        ├── Realm.framework
        └── RealmSwift.framework