【问题标题】:Realm.io build errors when using cocoapods `use_frameworks!`使用 cocoapods `use_frameworks!` 时 Realm.io 构建错误
【发布时间】:2016-07-07 19:30:39
【问题描述】:

目标:能够在 ObjC 项目中使用 swift pods

采取的步骤:

  • 通过附加use_frameworks! 更改Podfile
  • pod install(Cocoapods 版本 1.0.0)
  • 再次构建工作区

结果(错误):

  • 我收到以下Realm.io 错误(从pod 'Realm' 安装的pod,因为我在ObjC 中编码):
    • RLMRealm.h:51:1: Duplicate interface definition for class 'RLMRealm'
    • RLMRealm.h:95:62: Property has a previous declaration
    • RLMRealm.h:105:38: Property has a previous declaration
    • RLMRealm.h:110:56: Property has a previous declaration
    • RLMRealm.h:115:38: Property has a previous declaration
    • RLMRealm.h:297:28: Property has a previous declaration
    • RLMRealm.h:493:1: Duplicate interface definition for class 'RLMNotificationToken'

采取的问题解决步骤:

  • (以前的编辑历史中导致了这个简化问题)
  • 删除所有 pod 并重新安装(无效)
  • 在构建阶段取消链接 Pod 框架并重新链接(无效)
  • 已清理并构建/已清理构建文件夹并已构建(无效)
  • 尝试使用""<>@import导入(目前我的代码中的所有导入都是使用#import <Realm/Realm.h>完成的)(使用#import <Realm#import "Realm搜索)(无效)
  • 创建新项目,复制文件,安装 pod(无效)
  • 搜索了"@interface RLMNotificationToken" 的项目文件夹,只找到了RLMRealm.h 文件的一个实例,所以我没有重复
  • 删除我的所有文件(AppDelegate.h/m 除外)构建成功
  • 搜索#import "R#import <R@import R发现流氓#import <RLMRealm.h>

问题:

坦率地说,我真的很困惑,现在不知道该怎么办。

那么我该如何解决这些构建错误呢?为什么会这样?或者我应该尝试哪些其他解决问题的步骤?(我们将不胜感激任何这些问题的答案)

【问题讨论】:

  • 您是否尝试过清理构建文件夹(不要与 clean 混淆)?在 Xcode 中,在按住 Alt/Option 键的同时进入 Product 菜单并选择“Clean Build Folder...”选项;看看有没有帮助。
  • @AustinZ - 好主意!不幸的是,这也不起作用。你还有什么建议吗?

标签: ios cocoapods realm


【解决方案1】:

显然,我的一个文件中有一个#import <RLMRealm.h>(不知道它是如何进入其中的)。我将其更改为@import Realm;,现在一切正常。我之前搜索时错过了它,只是在梳理我的代码时才找到它。有趣的是它适用于库但不适用于框架。嗯,想通了,现在一切都很好。

【讨论】:

    【解决方案2】:

    用于 swift 的 Realm pod 是 "RealmSwift"。我认为您正在使用objective-c pod。

    看看这个链接Realm for Swift。您还可以拖放领域框架,这将避免您遇到的错误。

    【讨论】:

    • 我正在用 Objective-C 编写代码...'RealmSwift' 不是针对 Swift 进行了优化并且与 ObjC 有点不兼容(不能使用泛型类型等)吗?
    • 两种语言都有不同的 pod。您不能互换使用它们。如果您的目标是使用 swift,那么您将不得不使用“RealmSwift”。
    • 哦,我不能在 objc 项目中使用 swift pod,即使是 use_frameworks!?
    • swift pod 没有问题。使用混合 pod 可能需要一些 Realm 安装步骤?
    【解决方案3】:

    请检查您导入 Realm 类的所有位置。就我而言,我导入了#import <RLMArray.h>。应该是#import <Realm/RLMArray.h>

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      相关资源
      最近更新 更多