2016-07-07 18 views
3

Tor:Realm.io Fehler bauen, wenn cocoapods `use_frameworks mit`

  • Podfile durch Anhängen Altered use_frameworks!
  • : rasche Schoten in einem ObjC Projekt

    Schritte zur Verwendung der Lage sein,

  • lief pod install (Cocoapods Version 1.0.0)
  • Built Arbeitsplatz wieder

Ergebnis (Fehler):

  • ich folgende Realm.io Fehler (pod von pod 'Realm' installiert, da ich bin Codierung in 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'

Problemlösung Schritte unternommen:

  • (Vorherige diejenigen in Bearbeiten Geschichte, die zu dieser vereinfachten Frage führte)
  • alle Schoten Gelöschte und neu installiert (kein Effekt)
  • Unlinked Pods Rahmen in Build Phasen und neu gebunden (kein Effekt)
  • Gereinigt und gebaut/gereinigt Build-Ordner und gebaut (kein Effekt)
  • mit "" Versuchte Import <> und @import (derzeit alle Importe in meinem Code fertig sind mit #import <Realm/Realm.h>) (Suche mit #import <Realm und #import "Realm) (kein Effekt)
  • neues Projekt erstellt, kopiert Dateien über und pod installiert (kein Effekt)
  • Gesucht Projektordner für "@interface RLMNotificationToken" und fand nur eine Instanz der RLMRealm.h Datei, also habe ich keine Duplikate
  • alle meine Dateien löschen mit Ausnahme AppDelegate.h/m baut erfolgreich
  • gesucht #import "R, #import <R, @import R und fand ein Schelm #import <RLMRealm.h>

Fragen:

Ich bin ehrlich gesagt wirklich verwirrt und nicht sicher, was zu diesem Zeitpunkt zu tun ist.

Also, wie behebe ich diese Build-Fehler? Warum passiert dies? Oder welche anderen Problemlösungsschritte sollte ich versuchen? (Antworten auf diese Fragen wären willkommen)

+0

Haben Sie versucht, Ihren Build-Ordner zu reinigen (nicht mit "sauber" zu verwechseln)? In Xcode, gehen Sie zum Produktmenü, während Sie die Alt/Wahltaste gedrückt halten und wählen Sie die "Clean Build Folder ..." Option; Schau, ob es hilft. – AustinZ

+0

@AustinZ - Guter Gedanke! Das hat leider auch nicht funktioniert. Sonst noch was du vorschlagen würdest? – smileham

Antwort

2

Offensichtlich hatte eine meiner Dateien eine #import <RLMRealm.h> darin (nicht sicher, wie das da hinein kam). Ich änderte das zu @import Realm; und alles funktioniert jetzt. Das habe ich bei der Suche verpasst und nur gefunden, während ich meinen Code durchforstete. Interessant, dass es mit der Bibliothek funktioniert, aber nicht mit dem Framework. Nun, ich habe es herausgefunden und es ist jetzt alles gut.

1

Realm Pod für Swift ist "RealmSwift". Ich denke, Sie verwenden Objective-C-Pod.

Werfen Sie einen Blick auf diesen Link Realm for Swift. Sie können das Realm-Framework auch per Drag-and-Drop verschieben. Dadurch werden Fehler gespeichert, die Sie bereits erkannt haben.

+0

Ich schreibe Code in Objective-C obwohl ... Ist nicht "RealmSwift" für Swift optimiert und etwas inkompatibel mit ObjC (wird nicht in der Lage sein, generische Typen usw. zu verwenden)? – smileham

+0

Beide Sprachen haben unterschiedliche Pods. Sie können sie nicht synonym verwenden. Wenn es Ihr Ziel ist, swift zu verwenden, müssen Sie 'RealmSwift' verwenden. – Priyansh

+0

Oh, ich kann keine schnelle Pod mit einem Objc-Projekt verwenden, auch nicht mit 'use_frameworks!'? – smileham

0

Bitte überprüfen Sie alle Orte, an denen Sie Realm-Klassen importieren. In meinem Fall habe ich #import <RLMArray.h> importiert. Sollte #import <Realm/RLMArray.h> sein