2015-09-14 4 views
48

Ich "pod update", und meine RestKit Version ist jetzt 0.25.0, mein RKValueTransformers ist 1.1.2, und ein Fehler erschien "RKObjectMapping.h" nicht gefunden.RKObjectMapping.h Nicht gefunden

Was in der neuen Version hat RestKit Änderung, dass ich auf dem seine Github überprüfen nichts finden können.

Die folgenden Schritte können den Fehler reproduzieren:

1) Erstellen Sie ein neues Projekt

2) pod init

Podfile wie folgt aussieht:

platform :ios, '8.3' 
#pod 'RestKit', '~> 0.20.0' 
#pod 'RestKit', '~> 0.24.1' 
pod 'RestKit' 

In allen Fällen verschiedener Versionen, das Problem ist das gleiche

3) öffnen .xc Arbeitsplatz

4) in der viewcontroller.m

#import <RestKit/ObjectMapping/RKObjectMapping.h> 
#import <RestKit/ObjectMapping/RKRelationshipMapping.h> 
#import <RestKit/Network/RKResponseDescriptor.h> 
#import <RestKit/Network/RKObjectRequestOperation.h> 
#import <RestKit/Support/RKLog.h> 
#import <RestKit/CoreData/RKEntityMapping.h> 
#import <RestKit/Network/RKObjectManager.h> 

oder

#import "RKObjectMapping.h" 
#import "RKRelationshipMapping.h" 
#import "RKResponseDescriptor.h" 
#import "RKObjectRequestOperation.h" 
#import "RKLog.h" 
#import "RKEntityMapping.h" 
#import "RKObjectManager.h" 

Der Fehler ist immer noch da: "RKObjectMapping.h" nicht in einer Datei von RestKit Pod

gefunden Hinweis: Ich verwende Xcode 7-Beta5, Objective-C

+0

Welche Version hast du vorher? Was importiert 'RKObjectMapping.h'? – Wain

+0

die vorherige Version ist 0.24.1 – chipbk10

+0

Und es ruft RKObjectMapping.h. Die Sache ist, dass ich sogar auf die Vorgängerversion 0.24.1 downgrade, das Problem ist immer noch da. Ich erstelle ein neues Projekt, bekomme RestKit 0.24.1 und rufe RKObjectMapping.h von viewcontroller.m auf, das Problem ist das gleiche. – chipbk10

Antwort

74

Nach einer Weile zu kämpfen, bemerkte ich den Fehler ist nicht von RestKit. Es kommt von der Aktualisierung der neuesten Version von Cocoapoden (0.39β.4).

Der Header-Suchpfad befindet sich nicht mehr im rekursiven Modus.

Die Problemumgehung ist nur eine Herabstufung der Version von Cocoapods auf 0.38.0.

1) entfernen Sie die neueste Version von cocoapod

 
sudo gem uninstall cocoapods 

2) installieren Sie die 0.38.0 Version

 
sudo gem install cocoapods -v 0.38.0 

Hoffnung jemand helfen kann.

Aktualisiert:

Dank Vig, dass wir Pod mit einer bestimmten Version tun:

 
pod _0.38.0_ update 
pod _0.38.0_ install 
+12

Nebenbei, Sie müssen Kakao pods nicht deinstallieren, Sie können pod auf einer bestimmten Version tun, indem Sie pod _ 0.38.0 _ installieren ohne Leerzeichen zwischen Unterstrichen – Vig

+0

Ich habe das gleiche Problem, nachdem ich Cocoapods auf 0.39 Upgrade. 0. Und das Problem wird nach einem Downgrade zurück zu cocoapods-0.38.2 nicht auftreten. – derjohng

+0

nach dem Update auf OX X El Capitan Ich lief in dieses Problem festgestellt, dass nicht mehr Pods gefunden wurde und dann standardmäßig die Installation von Cocoapods aktualisiert. –

94

Es gibt einen einfachen Weg, um dieses Problem zu umgehen, wenn Sie nicht wollen, cocoapods berühren. weil sie sich selbst eine Mühe machen. Ich habe mein Problem wie folgt festgelegt:

Click on your project file
Then go to build settings search for "header search path"
With the drop down just make them recursive.

Sie sollten folgende suchen:

${PODS_ROOT}/Headers/Public/AFNetworking 
${PODS_ROOT}/Headers/Public/Bolts 
${PODS_ROOT}/Headers/Public/ISO8601DateFormatterValueTransformer 
${PODS_ROOT}/Headers/Public/RKValueTransformers 
${PODS_ROOT}/Headers/Public/RestKit 
${PODS_ROOT}/Headers/Public/SOCKit 
${PODS_ROOT}/Headers/Public 
+2

Dies ist die Lösung, danke! – mahieddine

+0

Danke dir Alix. –

+5

Ich habe $ {PODS_ROOT} selbst vermisst. Das Hinzufügen dieses (und es rekursiv machend) reparierte das Problem für mich. Du hast mir gerade eine Menge Arbeit gespart. Vielen Dank! – iHiD

-4

Ich löste dies durch Schoten als Rahmen zu bauen.

use_frameworks! 
+1

Dies hat den Nebeneffekt von Requiering iOS 8 oder neuer – Juan

+1

dies hat schwerwiegende Folgen – MKoosej

+0

Es funktioniert. Danke – cxphong

1

Dies hat schließlich in dem Entwicklungszweig von RestKit mit der letzten Patch ist in 1d8f3e332 fest, denke ich.

Hoffentlich wird es bald in Master zusammengeführt werden.

jetzt Denn wenn Sie mutig fühlen, können Sie verwenden

pod 'RestKit', :git => '[email protected]:RestKit/RestKit.git', :commit => '1d8f3e3325d959094a3f96c832bf9f54c9c48df3' 
+0

Leider behebt das nicht das Problem für mich: Ich erhalte jetzt doppelte Warnungen der Objektdeklaration. – pr1001

+0

Meine Vermutung ist, dass Sie RestKit zweimal irgendwie verbunden haben. Ich würde versuchen, Ihren Arbeitsbereich zurückzusetzen, indem Sie ihn löschen und neu installieren oder indem Sie alle Pods aus Ihrem Podfile entfernen, das Pod-Update ausführen, dann das Podfile wiederherstellen und die Pod-Installation ausführen. – kball

+0

kballs Antwort ist die einzige, die es für mich repariert. Sie sollten es als eine Antwort geben. Vielen Dank. Ich habe auch Cocoapoden 0.38.0 verwendet. – Antenehs