2010-05-30 9 views

risposta

13

Un eseguibile più piccolo è un download più rapido dall'app store. Tuttavia, ritagliare non-armv7 devices.

+0

fuori dalla line-up attuale, quali sono i dispositivi che non sono armv7? – coneybeare

+4

Probabilmente l'iPhone, l'iPhone 3G, l'iPod Touch 1a e 2a gen. –

+0

@Alex Per le persone che hanno iPhone 3G, cosa succede quando l'app si trova nell'app store? Non riescono a scaricare l'app o l'app si arresta in modo anomalo quando viene avviata? – CedricSoubrie

19

A meno che il programma non richieda OpenGLES 2.0 (che è supportato solo su dispositivi armv7), è necessario compilare il file binario standard (armv6/armv7). Un fat binary è fondamentalmente due (o più) binari di Mach-O incollati insieme, con una singola pagina di intestazione all'inizio. Il costo delle prestazioni è trascurabile: il caricatore dinamico deve eseguire un ulteriore errore di pagina per la pagina dell'intestazione per determinare quale architettura caricare.

Costruire solo per armv7 dimezza la dimensione del file eseguibile, anche se è improbabile che il file eseguibile sia troppo grande per iniziare. Puoi utilizzare i comandi "size" e "otool" sull'host per ottenere ulteriori informazioni sulle varie sezioni nel binario della tua app, ad es. "size -arch armv6 build/Release/MyApp.app/MyApp" avrà la dimensione di varie sezioni nella versione armv6 di un file binario, "size -arch armv7 build/Release/MyApp.app/MyApp" avrà la dimensione di varie sezioni nella versione armv7 di un binario, e ovviamente "ls -l build/Release/MyApp.app/MyApp" otterrà la dimensione effettiva del file binario.

Problemi correlati