创建一个使用RealmSwift的自定义框架

时间:2016-12-01 00:04:26

标签: ios swift frameworks realm

在简单项目中使用领域时,我使用了领域指令中的以下步骤:

  
      
  1. 下载最新版本的Realm并解压缩。
  2.   
  3. 转到Xcode项目的“常规”设置。从适当的位置拖动RealmSwift.framework和Realm.framework   您在ios /,osx /,tvos /或中的项目的Swift版本目录   watchos /目录到“嵌入式二进制文件”部分。确保复制   选择项目(如果在多个上使用Realm除外)   项目中的平台),然后单击“完成”。
  4.   
  5. 在单元测试目标的“构建设置”中,在“框架搜索路径”部分中添加RealmSwift.framework的父路径。
  6.   
  7. 如果在iOS,tvOS或watchOS项目中使用Realm,请在应用的目标“Build Phases”中创建一个新的“Run Script Phase”并粘贴   脚本文本字段中的以下代码段:
  8.         

    bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"

我需要创建一个自定义框架,以便我可以在应用程序之间共享多个类。这些类使用Realm和RealmSwift Framework。

所以我创建了一个自定义框架并添加了一些类。但是,要使这些类工作,我需要在我的自定义框架中有一个指向Realm框架的链接。

我不确定如何在第2步中完成此操作,它表示将Realm和RealmSwift框架拖到项目常规设置的“嵌入部分”中。但是对于框架项目,没有嵌入的部分。有“链接框架和库”部分。我在那里拖动了领域和realmSwift框架。但是自定义框架不会构建,并且它表示没有为RealmSwift找到模块。

我不确定框架项目中的搜索路径是否与常规xcode项目相同(即$(PROJECT_DIR))并且我不确定我应该期望看到Realm和我的项目资源管理器中的RealmSwift框架。

1 个答案:

答案 0 :(得分:1)

使用框架和库非常烦人,如果你的框架没有打包成.framework,那么你可能会做这样的事情,可能有用:

  1. 为您的框架创建一个文件夹,添加一些源文件
  2. 添加一个带有依赖关系的.podspec是Realm和RealmSwift,其他值则可以从其他pod中学习
  3. 创建一个普通的应用项目
  4. 使用cocoapods将:path指向您的文件夹,将您的框架安装到该应用程序项目中,这将随之安装领域和realmswift
  5. 现在,您可以通常使用领域编写框架而无需硬链接
  6. 对于cocoapods和框架相关的内容,请检查this tutorial

    对于框架项目,我通常做的是避免将第三方库/框架打包到我的.framework中,我有2个解决方案:

    1. 让用户完成工作,意味着您将创建完成块并让他们将其保存到领域
    2. 只将第三方lib的标题包含到您的项目中,并希望它在没有源文件的情况下构建,这仅适用于具有少量标题的简单第三方项目,可能不是Realm