2014-12-05 11 views
8

Ho realizzato un'app per iPhone molto semplice con Xcode 6.1 e swift. Sono davvero nuovo per lo sviluppo di ios e mi sono imbattuto in un'app che alla fine è 134 mb! ovviamente questo non è accettabile.Riduzione delle dimensioni del file App iOS

Ho immagini di sfondo per tutte le dimensioni dello schermo che si sommano a 20 mb. e questo è tutto! Sto memorizzando quelle immagini in xcassets, questo è il modo preferito che immagino.

l'app non dovrebbe avere più di 25 mbs, penso.

Ho scoperto di avere alcuni riferimenti raddoppiati nel mio progetto. Ho rimosso questi e ancora il mio file .app è 89 mbs!

Cosa sto sbagliando? Ho letto diversi thread su questo, ma nulla ha davvero aiutato!

Quello che ho fatto fino ad ora:

- reduce the size of all pngs 
- disable the compress PNG option, as it seems to make the PNGs bigger (lol) 
- configured the build settings to run the fastest and smallest build 
- Strip Debug Symbols During Copy build setting to Yes (COPY_PHASE_STRIP = YES) 

edit1: Apparenty Xcode fa qualcosa di strano con i miei PNG. Alcune di quelle immagini, che sono 2 mb in origine, sono più di 10mb nel file .app. Cosa fa xcode lì?

+4

Avete ispezionato il bundle app? Individua il file .app della tua app nel Finder, fai clic con il pulsante destro del mouse e usa "Mostra contenuto pacchetto". Dovresti vedere cosa effettivamente occupa così tanto spazio –

+0

Grazie Matthias, ho appena finito di farlo! vedere edit1 – Michael

risposta

11

In realtà non è sorprendente che i file di Apple ricompressi siano più grandi. Sono ottimizzati per un carico veloce di piccole dimensioni. Se non ti importa delle dimensioni oltre la velocità, spegni la compressione in modo provocatorio. Anche se ti interessa la velocità, puoi fare meglio di Apple.

https://imageoptim.com/xcode.html

Quindi sì, disattivare la compressione PNG. La prima cosa che farei è costruire l'ipa. Un ipa è in realtà un file zip, quindi crea l'ipa, copialo in una cartella sul tuo mac, rinomina il file con l'estensione .zip e fai doppio clic su di esso. Questo lo ampliò. Trova l'app nella cartella Payload e fai clic con il pulsante destro del mouse su di essa e scegli i contenuti del pacchetto. Vedrai tutte le risorse. Ordina per dimensione. Immagino che tu abbia immagini troppo grandi. A quella dimensione la mia ipotesi è che la dimensione extra possa essere causata quasi interamente dai file PNG.

Considerare l'utilizzo di immagini non retina per alcuni. Onestamente la maggior parte delle persone non noterà. iOS userà con garbo la non retina sulla retina. Questo può far risparmiare un sacco di spazio,

Inoltre, se non hai bisogno di trasparenza, considera l'utilizzo di file jpeg anziché PNG per alcuni file. I file Jpeg sono meno efficienti ma possono essere molto più piccoli. Confronta entrambi. Dipende dalla misura in cui le immagini sono a tono continuo.

Per impostazione predefinita, i file PNG sono a 32 bit. Colore a 24 bit e 8 buit alfa/trasparenza. È possibile salvare un po 'di dimensioni andando a 24 bit. Puoi anche salvare un sacco di dimensioni andando a 16 bit a colori o sotto. Nei file PNG a 8 bit utilizzare una tabella di ricerca colore. Gioca con Photoshop e salva per le opzioni in PNG con profondità di bit 8 e inferiori.

Ho tutti i tipi di software di compressione costoso, ma spesso usano il $ 8

https://itunes.apple.com/us/app/lossless-photo-squeezer/id704083918?mt=12

Prova l'opzione PNG a 8 bit e le opzioni JPEG.

EDIT Ho fatto qualche ricerca. Ho sempre saputo che Fireworks ha fatto una migliore compressione PNG. Non mi rendevo conto che esisteva un PNG a 8 bit con un canale alfa a 8 bit. Photoshop supporta 8 bit con un canale alfa a 1 bit.Ho sempre detto alle persone di usare PNG a 32 bit se la loro trasparenza aveva bisogno di più di 1 bit. In futuro, farò sapere loro che l'8 bit con 8 bit alpha potrebbe essere il percorso migliore, possono solo usare Photoshop per il salvataggio finale del file. Devono solo salvare un 32 bit e comprimerlo altrove.

http://calendar.perfplanet.com/2010/png-that-works/

David

+0

Alla fine ho rimosso gli xcassets che ho preparato per ogni dimensione dello schermo. Questi da soli sono finiti in un file assets.car all'interno del mio ipa che era di circa 80 mb! rimpicciolito il pngs e tutto, ora l'app è inferiore a 20 mb ... – Michael