2010-12-15 1 views
13

È importante assicurarsi che ogni applicazione iOS inoltrata all'AppStore abbia una dimensione inferiore a 20 MB, in modo che possa essere scaricata over-the-air.Qual è il modo più semplice per determinare le dimensioni del bundle di iOS .app durante lo sviluppo?

Sto lavorando a un'app che potrebbe avvicinarsi a tale limite e ho scoperto che non sembra essere un modo semplice per comunicare l'output corrente. Dimensione del pacchetto di app da XCode.

In XCode4 in particolare: per impostazione predefinita, ogni build è nascosta in una directory temporanea difficile da ottenere e definita in modo criptico. Non voglio ignorare questo comportamento predefinito a meno che non sia necessario.

So che posso rintracciare il pacchetto .app guardando i log di build, aprendo una finestra di shell, passando a quella directory, e usando 'du' - ma spero di trovare un modo più semplice e veloce per mantenere traccia delle dimensioni del file .app dopo ogni nuova build.

Non c'è nemmeno un modo semplice direttamente su un iPhone o iPad per determinare le dimensioni di un'applicazione. Per lo più apprezzo questo, ma non quando sono nel mezzo dell'ottimizzazione.

Qualche idea sulle migliori pratiche?

AGGIORNAMENTO: Sto utilizzando XCode 4 ora per la maggior parte del mio sviluppo quotidiano, e sembra che ogni soluzione finora non funzioni su XCode 4 sia perché la funzionalità è cambiata o funzionalità (come Archiviazione) stanno ancora arrivando presto. Penso che la risposta definitiva potrebbe essere "usare XCode 3" per la particolare fase di sviluppo. So che avrò ancora bisogno di usare XCode 3 per la compilazione finale e l'invio comunque ...

+0

+1 per una domanda ben descritta! – Linuxmint

risposta

2

Creare uno script (perl, bash, AppleScript, qualsiasi cosa ...) e aggiungerlo agli script di build. Lo script può quindi eseguire il cd nella posizione magica, comprimere il file .app in/tmp, du -s -h il file zip risultante e inviare l'output a un file di registro ... forse anche flash luminosi rossi accesi ad una porta parallela USB relay per avvisarti di aver superato il limite di alcune dimensioni del file.

+0

Questa non è necessariamente un'opzione "facile", ma se stare sotto un limite di dimensioni è davvero fondamentale - questo è il modo migliore che ho visto per automatizzare l'esserne sicuri. Mi chiedo se qualcuno abbia effettivamente implementato uno script come questo da nessuna parte ancora? – radven

2

In realtà, è la dimensione di .ipa, non l'.app, che deve essere inferiore a 20 MB. Dato che .ipa è un archivio zip, avrai un po 'più di spazio su cui lavorare. L'unico modo per trovare la dimensione che conosco sarebbe di creare una build e archiviare in XCode e guardare la dimensione del file in Finder.

+0

Un buon punto sul fatto che il .ipa fosse un compresso compresso, non ci avevo pensato. Ma in questo caso non credo che avrà molta importanza - le risorse generate che sto ottimizzando sono già file PNG altamente compressi. – radven

+0

Build & Archive è un'opzione in XCode 4 - ma la funzionalità di condivisione che in realtà ti consente di accedere all'archivio sembra essere ancora "in arrivo". Potrei dover tornare a XCode 3 per questo lavoro ... – radven

11

Dove lavoro, facciamo un archivio Xcode (Build e Archive) e quindi esportiamo quell'archivio sul disco dalla finestra Organizer (utilizzando il pulsante Condividi).

Questo genererà un file .ipa. La dimensione di quel file è ciò che stai cercando.

+0

Quando si eseguono ottimizzazioni delle dimensioni, si verificano molti passaggi ripetitivi. Fare un archivio, esportarlo, misurarlo, quindi eliminare sia il file esportato che l'archivio richiede molto tempo. Spero in un modo più semplice, ma potrebbe non esserlo. – radven

+0

Ah - e ho appena scoperto che la funzionalità Archive/Share non è ancora implementata in XCode4. Hmmmm .... – radven

+0

Questa è la migliore risposta – barfoon

3

Dovrebbe essere presente una cartella "Prodotti" nel progetto Xcode. All'interno di quella cartella ci saranno i tuoi file .app. Fai clic con il tasto destro sul tuo file e seleziona "Mostra nel Finder".

+0

Penso che questo ha funzionato in XCode3, ma sebbene la cartella dei prodotti sia ancora lì in XCode4 - non c'è più un'opzione "rivela in finder" quando fai clic destro. – radven

+0

Ho appena controllato la mia versione di Xcode 4 e c'era un'opzione chiamata "Mostra nel Finder" che sembrava fare la stessa cosa. – aepryus

+0

Vedo l'opzione "Mostra nel Finder", ma sembra in grigio in tutti i miei progetti. Funziona davvero per te, o forse è una funzionalità non implementata? – radven

0

Il file che si invia ad Apple è un file .zip, è il file binario compresso. Ad esempio, sto lavorando a un'app che è più di 120mb non compressa, ma si comprime a circa 19 MB dato che sono per lo più dati. Immagino che tu abbia un sacco di flessibilità è che la maggior parte dei tuoi file non è un formato compresso.