2015-06-12 22 views
8

Ho appena pod installato questo Podfile per un nuovo progetto:Ottenere errore di compilazione ReactiveCocoa

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '7.0' 

def import_pods 
    pod 'Mantle' 
    pod 'LBBlurredImage' 
    pod 'TSMessages' 
    pod 'ReactiveCocoa' 
end 

target 'WeatherJoy2' do 
    import_pods 
    link_with 'WeatherJoy2' 
end 

pod installare succeeeded ma ora ottenendo i seguenti errori sulla costruzione del progetto:

/Users/ankit/Documents/WeatherJoy2/Pods/ReactiveCocoa/ReactiveCocoa/NSObject+RACKVOWrapper.m:49:3: Unknown type name 'rac_propertyAttributes'; did you mean 'mtl_propertyAttributes'? 
/Users/ankit/Documents/WeatherJoy2/Pods/ReactiveCocoa/ReactiveCocoa/NSObject+RACKVOWrapper.m:49:40: Implicit declaration of function 'rac_copyPropertyAttributes' is invalid in C99 

/Users/ankit/Documents/WeatherJoy2/Pods/ReactiveCocoa/ReactiveCocoa/NSObject+RACKVOWrapper.m:49:27: Incompatible integer to pointer conversion initializing 'mtl_propertyAttributes *' with an expression of type 'int' 

Non c'è niente altro nel progetto, era un nuovo progetto. Sono su xcode 6.2 e OSX 10.9.5

risposta

3

Ho avuto lo stesso problema quando uso Mantle e ReactiveCocoa insieme. Sembra che sia stato causato da entrambi i pod che hanno un'intestazione EXTRuntimeExtensions.h, che ha reso ReactiveCocoa l'importazione della versione di Mantle incompatibile dell'intestazione (con-rispetto ai prefissi dei nomi di funzione rac_).

Nel mio caso ho riparato sostituendo ogni occorrenza #import "EXTRuntimeExtensions.h" nel baccello ReactiveCocoa con #import "../Objective-C/extobjc/EXTRuntimeExtensions.h"

+3

In realtà non è una soluzione, perché ogni volta si incorrerà pod installarlo sarà sostituito, o dove hai inserirlo? – melbic

+0

Come @melbic ha detto che questa non dovrebbe essere una soluzione permanente. Solo un bypass per il momento per sbloccarti. Non dovresti contrassegnarlo come la soluzione finale –

+0

Sì, questa è solo una soluzione - idealmente capirò cosa sta causando il conflitto dell'intestazione e lo risolverò, ma per ora per consentire al progetto di costruire ho questo nel mio Podfile per mantieni la soluzione alternativa durante l'installazione di pod: '' 'post_install {' trova i pod/ReactiveCocoa -type f! -name EXTRuntimeExtensions.m -exec sed -i '' s/import "EXTRuntimeExtensions.h"/import ".. \\/Objective-C \\/extobjc \\/EXTRuntimeExtensions.h"/g '{} \\ ; '}' '' (percorsi potrebbero differire a seconda della esatta commit di ReactiveCocoa) –

1

Come opzione è possibile impostare la versione ReactiveCocoa meno 3.0.0. Ad esempio, la versione 2.5 funziona normalmente con Mantle.

pod 'Mantle', "~> 2.0.2" 
pod 'ReactiveCocoa', "~> 2.5"