使用cocoapods时的Realm.io构建错误`use_frameworks!`

时间:2016-07-07 19:30:40

标签: ios cocoapods realm

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

采取的步骤:

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

结果(错误):

  • 我收到以下Realm.io错误(由于我在ObjC中编码,因此从pod 'Realm'安装了pod):
    • 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'

解决问题的步骤:

  • (导致此简化问题的编辑历史记录中的旧版本)
  • 删除了所有广告连播并重新安装(无效)
  • Build Phases中未链接的Pods框架并重新链接(无效)
  • 清理并构建/清理构建文件夹并构建(无效)
  • 尝试使用""<>@import进行导入(目前我的代码中的所有导入都使用#import <Realm/Realm.h>完成)(使用#import <Realm搜索并{ {1}})(无效)
  • 创建新项目,复制文件并安装pod(无效)
  • 搜索了#import "Realm的项目文件夹,但只找到了"@interface RLMNotificationToken"文件的一个实例,所以我没有重复项
  • 删除除RLMRealm.h内容以外的所有文件
  • 搜索了AppDelegate.h/m#import "R#import <R,发现了一个流氓@import R

问题:

坦率地说,我很困惑,不知道此时该做些什么。

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

3 个答案:

答案 0 :(得分:2)

显然我的一个文件中有一个#import <RLMRealm.h>(不确定那里有什么)。我将其更改为@import Realm;,现在一切正常。我之前在搜索时错过了,只在梳理我的代码时发现它。有趣的是,它适用于库,但不适用于框架。好吧,想通了,现在一切都很好。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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