2014-09-22 12 views
7

Quando ho aggiunto un'estensione di oggi, la mia app ha improvvisamente guadagnato molto peso ... quindi ho fatto un rapido controllo per vedere da dove viene quel grasso. Sembra che il .apex sia 13MB, il file 'Assets.car' è ancora più grande di quello nella mia app principale (+ 8MB). Il fatto è che io uso solo 1 immagine nel catalogo delle risorse che ho nella mia estensione.Catalogo delle risorse dell'app principale copiato nell'estensione di oggi

Ho controllato all'interno di Xcode, il mio catalogo principale delle risorse di app non è commutato per essere copiato con l'estensione, ma sembra che sia in effetti.

È normale? Sai cosa fare per ridurre la dimensione .apex finale?

Grazie!

+0

Anche io sto vedendo questo. L'app principale ha un 'assets.car' di 4 MB. Anche dopo aver rimosso tutte le risorse dall'est, rimane 16 MB. –

+0

Sì, il mio widget assets.car è persino più grande della mia app principale. – Dimillian

+0

Stiamo vedendo anche questo. Non usiamo nemmeno molte risorse nelle nostre estensioni. Qualcuno ha capito come sbarazzarsi di questo? – toofah

risposta

3

Sei per caso usando Cocoapods?

Attualmente c'è uno open issue che causa lo script di esecuzione Copy Pods Resources per individuare tutti gli asset e compilarli in un grande archivio, che potrebbe non essere desiderato per tutti i target.

Fino a quando questo è fisso, una soluzione semplice è quello di aggiungere un gancio post_install al Podfile:

# Fix broken copy-resources phase per https://github.com/CocoaPods/CocoaPods/issues/1546. 
post_install do |installer| 
    installer.project.targets.each do |target| 
    scriptBaseName = "\"Pods/Target Support Files/#{target.name}/#{target.name}-resources\"" 
    sh = (<<-EOT) 
     if [ -f #{scriptBaseName}.sh ]; then 
     if [ ! -f #{scriptBaseName}.sh.bak ]; then 
      cp #{scriptBaseName}.sh #{scriptBaseName}.sh.bak; 
     fi; 
     sed '/WRAPPER_EXTENSION/,/fi\\n/d' #{scriptBaseName}.sh > #{scriptBaseName}.sh.temp; 
     sed '/*.xcassets)/,/;;/d' #{scriptBaseName}.sh.temp > #{scriptBaseName}.sh; 
     rm #{scriptBaseName}.sh.temp; 
     fi; 
    EOT 
    `#{sh}` 
    end 
end 

di credito per il frammento di codice di cui sopra va a tutte le persone utili nel thread problema!

+0

Ecco fatto. Molte grazie! Avrei dovuto guardare il livello di Cocoapods. Sono andato da 28 a 19 anni! – Dimillian

Problemi correlati