2014-12-23 9 views
33

Sto iniziando lo sviluppo sia di un prodotto iPhone che iPad e i due useranno un framework personalizzato per le funzionalità di base. Ho creato un progetto iOS Framework che conterrà tutte le API comuni. Mi piacerebbe essere in grado di eseguire il debug del framework durante il debug dell'applicazione iPhone. Ho aggiunto sia il progetto iPhone che il progetto Framework al mio spazio di lavoro e ho collegato il framework al mio progetto iPhone. Quando cerco di pulire o compilare il progetto, ottengo questo errore.Aggiungi il riferimento al progetto Swift iOS XCode ed esegui il debug

MyFramework non è un PRODUCT_NAME valido per l'utilizzo con i target di framework che abilitano DEFINES_MODULE (il nome non è un identificatore esteso C99 valido). Questo è in XCode 6

Qualcuno ha qualche idea su cosa significa?

Grazie.

risposta

52

Significa che il nome del framework non è valido.
Contiene alcuni caratteri non riservati.

- Non può essere utilizzato in nome quadro

Esempio:

MyFrameroks-iOS - sbagliato
MyFrameroksiOS - Corretta

tenta di rinominare voi quadro. Seach per product name in ambiente di compilazione del progetto e modificarlo enter image description here

+0

Grazie per la risposta e scusa per aver impiegato così tanto tempo a darti credito. –

12

Giusto per aggiungere alla risposta di @Kostiantyn Koval: il valore di default del campo Nome del prodotto è $(TARGET_NAME), che prende il valore da nome di destinazione, come implicita. Modificando questo valore su $(TARGET_NAME:c99extidentifier), è possibile fornire una stringa compatibile con c99 che rimanga sincronizzata con il Nome destinazione, come fa il valore predefinito. Apple lo sta usando, ad es. la proprietà Nome modulo prodotto (dove appare come $(PRODUCT_NAME:c99extidentifier))

In pratica, ciò che fa è cambiare alcuni caratteri incompatibili, come gli spazi bianchi, con quelli compatibili, come il trattino basso in questo caso.

+0

Sì, posso confermare che in effetti cambia gli spazi bianchi in sottolineatura. – Andrej

+1

Punti "." sembra essere un altro personaggio che causa questo problema. Questo approccio lo corregge, trasformandoli in caratteri di sottolineatura. – Marchy

Problemi correlati