Sto provando a far funzionare un'app sul simulatore che ha avuto qualche problema prima. Non abbiamo libjpeg.a creato per i386
, ma ha x86_64
. Questa è l'unica dipendenza rimasta, ma mi chiedo il motivo per cui ho effettivamente bisogno dei simboli i386
, se sono in esecuzione su un mac x86_64
.Perché il simulatore iOS richiede i simboli i386 e x86_64 anche se sono su un sistema x86_64 solo?
Perché il simulatore iOS richiede i simboli i386 e x86_64 anche se sono su un sistema x86_64 solo?
risposta
Il simulatore iOS può eseguire l'app in modalità a 32 e 64 bit. Questo ti consente di risolvere molti problemi a 64 bit e assicurarti che sia pronto per armv7 e arm64. Per fare ciò, compila la tua app per i386 e x86_64 e richiede le librerie per entrambe le architetture.
realtà i386 L'architettura è per iPhone simulatore dove, come x86_64 architettura è per i simulatori iPad, entrambi sono 32 e 64 bit compatibili.
applicazioni iOS devono funzionare su molte architetture differenti:
arm7: Used in the oldest iOS 7-supporting devices
arm7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator
Sono a conoscenza delle diverse architetture. Comunque la mia domanda era più sul caso particolare del perché le build per entrambe le architetture fossero necessarie semplicemente per costruire un simulatore. Sembra che ci siano una moltitudine di motivi per cui (ad esempio la tua app è universale per iPad e iPhone, ma Xcode SDK utilizza effettivamente un'architettura a 32 bit più vecchia per emulare gli ambienti più vecchi in quanto non sono stati aggiornati a 64 bit). –
Grazie Sì ho pensato che questo fuori solo dopo l'invio. Stavo pensando che avrei potuto essere in grado di implementare su un target virtuale a 64 bit senza simboli a 32 bit e che forse Xcode avrebbe tentato solo di collegare 32 bit quando si distribuiva su un target virtuale a 32 bit. Nel frattempo mi sono aggirato rimuovendo arm7 dalle impostazioni di costruzione. Tuttavia, sei corretto e meriti la risposta giusta. –