2015-06-08 10 views
6

Mi sono recentemente trasferito in una nuova azienda e sto cercando di fare i conti con le impostazioni Xcode su un progetto. Attualmente il progetto è in fase di compilazione per "armv7 armv7s arm64 armv8 i386". Qualcuno potrebbe spiegare se è necessario compilare per i386 e perché?Quando è necessario compilare per i386 su iOS

Il mio progetto compila ok se lo rimuovo. Una cosa da notare è che sto collegando un lib C++ che è compilato con le stesse architetture. I386 è utilizzato per il simulatore o per specifici dispositivi iOS?

Grazie

risposta

8

è necessario la versione i386 per eseguire l'applicazione nel simulatore iOS, che gira nativamente su OS X e utilizza l'hardware x86/x64 sottostante. Questo è molto più veloce dell'emulazione di ARM.

+1

Una breve nota: non tutte le librerie di terze parti funzionano sotto la simulazione, il che significa che alla fine si troverà un'app in cui è possibile eseguire il debug solo sul telefono e rimuovere l'opzione i386 dall'elenco. –

0

Non è necessario specificare specificamente i386 nelle impostazioni di creazione dell'architettura. Idealmente, dovresti lasciare ARCHS e VALID_ARCHS come valori predefiniti e tutto dovrebbe "funzionare". Vedrai solo le architetture del braccio elencate, ma la cosa giusta accade dietro le quinte quando costruisci la sim.

Quando si crea il simulatore, il progetto verrà creato per i386, x86_64 o entrambi (a seconda della destinazione di distribuzione e delle impostazioni di costruzione ARCHS e ONLY_ACTIVE_ARCH). Nel simulatore, i dispositivi a 32 bit sono autorizzati solo a eseguire il codice i386 e i dispositivi a 64 bit sono in grado di eseguire sia il codice i386 che x86_64b (proprio come i dispositivi reali ma utilizzano intel invece di arm).

Problemi correlati