在一个简单的项目中使用 realm 时,我使用了 realm 说明中的以下步骤:
- Download the latest release of Realm and extract the zip.
- Go to your Xcode project’s “General” settings. Drag RealmSwift.framework and Realm.framework from the appropriate Swift-versioned directory for your project in ios/, osx/, tvos/ or watchos/ directory to the “Embedded Binaries” section. Make sure Copy items if needed is selected (except if using Realm on multiple platforms in your project) and click Finish.
- In your unit test target’s “Build Settings”, add the parent path to RealmSwift.framework in the “Framework Search Paths” section.
- If using Realm in an iOS, tvOS or watchOS project, create a new “Run Script Phase” in your app’s target’s “Build Phases” and paste the following snippet in the script text field:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
我需要创建一个自定义框架,以便我可以在应用程序之间共享多个类。这些类使用 Realm 和 RealmSwift 框架。
所以我创建了一个自定义框架并添加了一些类。然而,为了让这些类起作用,我需要在我的自定义框架中有一个到 Realm 框架的链接。
我不确定如何在步骤 2 中完成此操作,它指出将 Realm 和 RealmSwift 框架拖到项目常规设置的“嵌入部分”中。但是对于框架项目,没有嵌入式部分。有“链接的框架和库”部分。我将 realm 和 realmSwift 框架拖到那里。但是自定义框架不会构建,它说找不到 RealmSwift 的模块。
我不确定在框架项目中搜索路径是否与常规 xcode 项目(即 $(PROJECT_DIR) )相同,我不确定我应该期望看到哪个级别的 Realm 和我的项目浏览器中的 RealmSwift 框架。
最佳答案
使用框架和库非常烦人,如果你的框架没有打包到 .framework
中,那么你可能会做这样的事情,可能会奏效:
- 为你的框架创建一个文件夹,添加一些源文件
- 添加一个
.podspec
,依赖的是Realm和RealmSwift,其他值可以借鉴其他pod - 创建一个普通的应用项目
- 使用
:path
指向您的文件夹,将您的框架安装到带有 cocoapods 的应用程序项目中,这将同时安装 realm 和 realmswift - 现在您可以正常使用 realm 编写您的框架而无需硬链接(hard link)
对于 cocoapods 和框架相关的东西,检查 this tutorial
对于框架项目,我通常做的是避免将第三方库/框架打包到我的.framework 中,对此我有 2 个解决方案:
- 让用户完成工作,意味着您将创建完成 block 并让他们将其保存到自己的 Realm
- 仅将第三方库的 header 包含到您的项目中,并希望它在没有源文件的情况下构建,这仅适用于 header 很少的简单第三方项目,可能不适用于 Realm
关于ios - 创建一个使用 RealmSwift 的自定义框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900451/