2010-09-09 14 views
18

ho aggiornato l'SDK per iOS al recente rilasciato 4.1 e ora ho l'errore seguente, mentre la costruzione la mia app:problema strano dopo l'aggiornamento a iOS 4.1 SDK

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23  

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23: error: expected function body after function declarator 

Guardando quella linea nella .h File vedo il seguente:

CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0); 

la cosa veramente interessante è la definiscono __MAC_10_7 che sembra non essere definito da nessuna parte. Ottengo questo errore durante la pre-compilazione del file .pch della mia app.

Ciò che è curioso è che compaia una semplice app Hello World.

Qualche idea cosa posso fare?

Grazie in anticipo!

Stelian

+0

Huh. Il documento delle modifiche API dice "nessuna modifica" a Core Graphics. Il MAC_10_7 non dovrebbe fare la differenza. Non vedo ancora nulla sui forum Apple, quindi registrerei un bug su Apple e vedremo cosa dicono. –

+0

Sto riscontrando un problema molto simile. Ho capito dopo l'aggiornamento a iOS 4.1 SDK provenienti da 4.0.2 sdk. –

+0

Sto riscontrando un problema molto simile. Ottengo dopo l'aggiornamento a SDK di iOS 4.1 provenienti da sdk 4.0.2. Ottengo 11 errori per un progetto che è stato compilato bene. Gli errori si verificano nei file CG * .h. Stesso tipo di errori, alcune variabili non sono definite, se ricordo, IPHONE_ qualcosa non può essere analizzato. Maggiori dettagli non appena arrivo vicino a un computer Mac. La cosa interessante è che se creo un nuovo progetto e copio i file, crea, ma eseguendo l'app, mancano alcune viste (ereditando UIVIEW e UITABLEVIEW) –

risposta

42

Questo è un bug noto con l'SDK di iOS 4.1 e la creazione utilizzando LLVM per iPhone Simulator. Puoi leggere tutto su di esso in this thread sui forum degli sviluppatori di Apple.

La soluzione consigliata è quella di aggiungere quanto segue al Other C Flags in impostazioni di generazione del vostro progetto: -D__IPHONE_OS_VERSION_MIN_REQUIRED=040100 dove si sostituisce 040.100 con la versione destinazione di distribuzione (030 mila per 3,0, per esempio).

+0

Risolto il problema per me - applausi –

+0

Risolto il problema anche per me Molte grazie –

+0

Ottenuto errori durante l'utilizzo ad esempio 030100 (per 3.1), modificato in 30100 che funziona bene! – avocade

0

Forse si dovrebbe essere la costruzione con l'ultima Xcode 4, questo è un requisito? Il MAC_10_7 verrebbe definito nelle intestazioni di sistema fornite con il compilatore. Suppongo che potrebbe essere nell'SDK ma non penso. Immagino che questo succeda quando costruisci il simulatore.

3

Ho questo problema quando utilizzo il compilatore LLVM. Prova a ricompilare usando GCC e il problema (per me) va via.

Continuerò a indagare per determinare se si tratta di un problema generale di toolchain o se è specifico della mia configurazione.

--update:

modo che appaia come un problema con CLANG. LLVM GCC 4.2 funziona correttamente.

Continuo a pensare che sia probabile un problema con la mia configurazione. Anche un progetto vuoto non verrà compilato sotto LLVM CLANG 1.5 per me.

--update 2:

Così sembra che l'impostazione della versione minima richiesta non viene onorato nelle impostazioni di informazioni di progetto. Ho impostato manualmente tramite:

Altre C Flags: -D__IPHONE_OS_VERSION_MIN_REQUIRED = 031.300

(per un minimo di iOS 3.1, ovviamente - se avete bisogno di una versione successiva, è possibile utilizzare 040.100 per la versione 4.0)

Sembra solo essere un problema di simulatore con CLANG/LLVM. La compilazione per il dispositivo sembra funzionare correttamente.

+0

Compilando per dispositivo invece di lavori di simulazione. – toofah

+0

Anche se il flag min richiesto è impostato su 'Other C Flags', non riesco a farlo funzionare per il simulatore. :( – toofah

Problemi correlati