2014-09-10 10 views
11

Così ogni volta che aggiorno la mia app, Xcode afferma di non essere in grado di trovare un particolare framework esterno anche se è lì. E 'successo di nuovo con Xcode 6 e con i miei soliti metodi (sono abbastanza inesperto, quindi fondamentalmente coinvolgono fare clic e digitare le cose finché qualcosa non accade (esagero ma non di molto)) non funzionano.file esterno File/File.h (Parse/Parse.h) file non trovato

sto ottenendo un errore che dice Lexical or Preprocessor Issue'Parse/Parse.h' file not found.' Ma qui ci sono le immagini di esso nel progetto e ha aggiunto alla libreria:

enter image description here

enter image description here

Ho anche seguito i passaggi della la risposta più votata a ‘ld: warning: directory not found for option’ ma ancora nulla.

Qualche idea su cosa fare? Qualche idea? Sto strappando i miei capelli qui.

+0

ho risposto alla domanda qui si prega di consultare http://stackoverflow.com/a/32110869/3580356 –

+0

ho risposto alla domanda qui http://stackoverflow.com/a/32110869/3580356 –

risposta

3

Ho avuto lo stesso problema durante l'aggiornamento di analisi a 1.4 v. È necessario eliminare Parse.framework dall'elenco dei framework e dalla directory del progetto, quando si rimuove da entrambi i luoghi, copiare nuovamente e selezionare "Copia gli elementi nella cartella del gruppo di destinazione". Ha funzionato per me.

7

In realtà stavo affrontando lo stesso problema ma dopo aver fatto un sacco di sforzi (rimuovendo/aggiungendo framework parse), sono venuto a sapere che parse.framework è già stato aggiunto e l'errore era ancora lì.

Reale problema non era in collegamento binario per il progetto principale ma era con i test di collegamento binario. Diciamo che il nome del tuo progetto è "project1" e Xcode crea un'altra cartella con il nome "project1Tests". Quindi selezionare "project1Tests" e aggiungere parse.framework nel link Binary.

Partenza gerarchia:

PROGETTO
project1

OBIETTIVI
project1
project1Tests (è necessario selezionare questa opzione per aggiungere quadro parse).

Spero che questo possa aiutarti a risolvere questo problema.

+0

Questa soluzione ha corretto l'errore sul mio Xcode 6.1 e non era necessaria per Xcode 6 e versioni successive. – Deepan

7

Ho avuto anche questo errore. Sto sviluppando in Swift, quindi ho aggiunto un "header del ponte" come descritto in this Parse blog post.

Il motivo per cui ho ricevuto il messaggio "Parse.h non trovato" era che il nome del mio progetto conteneva spazi. (Per nome progetto intendo il nome prodotto inserito durante la creazione di un nuovo progetto, che determina il nome della cartella.) Il primo giorno è andato tutto bene, ma dopo aver chiuso e aperto Xcode, risulta che Xcode interpreta le parole separate da spazi come percorsi diversi.

Per risolvere questo problema, è possibile accedere a Impostazioni di creazione -> Percorsi di ricerca -> Percorsi di ricerca quadro e aggiungere una "\" prima di ogni spazio. (Se fai doppio clic sul percorso vedrai che Xcode mostra ogni parola separata dallo spazio come una voce diversa.)

Inoltre, l'intestazione del ponte con #import <Parse/Parse.h> non è obbligatoria: puoi semplicemente fare import Parse.

0

Nel mio caso ho dovuto fare ancora una cosa in più alla risposta di Sukhchais. Sembra che sebbene il file parse.framework venga visualizzato nell'elenco "Collega binari con librerie" per i target, potrebbe non essersi collegato correttamente per qualche motivo. Basta rimuovere parse.framework dall'elenco e aggiungerlo nuovamente come indicato. In quel modo sono stato in grado di risolvere il mio problema.

5

Tutto ciò che dovevo fare era rimuovere Parse.framework da questo elenco evidenziando e premendo delete.

enter image description here

Poi sono andato giù al segno più in fondo a quella lista e ha dovuto selezionare Aggiungi Altro e manualmente individuare il file scaricato .framework.

enter image description here

0

solo condividere le mie scoperte nel caso in cui se qualcuno può avere la stessa questione:

Accidentalmente abbiamo avuto due riferimenti di Parse.framework all'interno del nostro codice di base di origine in due punti diversi. E un riferimento a Parse.framework era collegato in Fasi di costruzione del bersaglio, dal primo punto. Ma quando l'applicazione viene compilata, Xcode non era abbastanza intelligente per ottenere un riferimento e trowed un errore: "lessicale o preprocessore di Emissione" errore quando "Parse/Parse.h" è importata in PCH file. Dopo aver trascorso un paio d'ore provando varie opzioni, rimosso un riferimento di Parse.framework dalla base di origine e mantenuto solo un riferimento singolo. Questo ha risolto il problema.

e l'App compilato con successo :)

5

Nel mio caso, l'errore è andato via dopo ho aggiunto il percorso della directory in cui è stato Parse.framework alla configurazione Regolazione Frameworks percorsi di ricerca:

Framework Search Paths

Il mio progetto non ha nemmeno una voce per quella impostazione, quindi potrebbe essere necessario crearlo.

0

Per le persone provenienti da ionica + Cordova se hai trovato questo errore ho risolto rimuovendo il mio attuale parsePlugin e la sua sostituzione con this fork.

Per semplicità, ho usato questi comandi della console (sostituire PARSE_APP_ID e PARSE_CLIENT_KEY con le chiavi nella console Parse):

cordova plugin rm com.parse.cordova.core.pushPlugin 
cordova plugin add https://github.com/grrrian/phonegap-parse-plugin --variable APP_ID=PARSE_APP_ID --variable CLIENT_KEY=PARSE_CLIENT_KEY 
0

Ok, così ho avuto questo problema pure. Ho disinstallato tutti i miei pod, li ho reinstallati di nuovo e non ho avuto fortuna. Quindi le buone notizie (e le cattive notizie considerando il tempo che ho speso cercando di trovare il problema) sono che alla fine sono riuscito a risolverlo. Apparentemente, devi importare Foundation/Foundation.h prima di analizzare. Non so se questo funzionerà o meno per te, ma ho provato tutto in rete, e solo questo sembrava funzionare.Se si dispone di tutte le istanze di questo:

#import <Parse/Parse.h> 
#import <Foundation/Foundation.h> 

'capovolgere intorno in modo che Fondazione è dichiarato prima:

#import <Foundation/Foundation.h> 
#import <Parse/Parse.h> 

Ho anche letto da qualche parte che alcune persone hanno avuto problemi con Facebook SDK e l'importazione Parse SDK. Apparentemente, i due hanno Bolt.Framework in comune o qualcosa, che causa l'errore. Ho rimosso anche Facebook SDK, che inizialmente non ha fatto alcuna differenza. Spero di poterti aiutare.

1

Il suo lavoro per me. Basta andare Build Active Architecture Only e Debug dovrebbe essere yes e Release dovrebbe essere No enter image description here