2014-09-22 16 views
7

Kiedy dodałem rozszerzenie Today, moja aplikacja nagle przybrała na wadze ... więc zrobiłem szybką kontrolę, aby sprawdzić, skąd pochodzi ten tłuszcz. Wygląda na to, że plik .apex ma rozmiar 13 MB, plik "Assets.car" jest jeszcze większy niż ten w mojej głównej aplikacji (+ 8 MB). Chodzi o to, że używam tylko jednego obrazu z katalogu zasobów, który mam w swoim rozszerzeniu.Główny katalog aktywów aplikacji skopiowany w dniu dzisiejszym rozszerzenie

Sprawdziłem w Xcode, mój główny katalog aktywów aplikacji nie został przełączony do skopiowania z rozszerzeniem, ale wygląda na to, że tak naprawdę jest.

Czy to normalne? Czy wiesz, co zrobić, aby zmniejszyć ostateczny rozmiar pliku .apex?

Dzięki!

+0

Widzę to również. Główna aplikacja ma "asset.car" o pojemności 4 MB. Nawet po usunięciu wszystkich zasobów z urządzenia zewnętrznego pozostaje 16 MB. –

+0

Tak, mój widget assets.car jest nawet większy niż mój główny app. – Dimillian

+0

Widzimy to również. Nie używamy nawet wielu zasobów w naszych rozszerzeniach. Czy ktoś odkrył, jak się tego pozbyć? – toofah

Odpowiedz

3

Czy przypadkiem używasz Cocoapods?

Obecnie istnieje open issue, który powoduje, że skrypt uruchamiania Copy Pods Resources lokalizuje wszystkie zasoby i kompiluje je w duże archiwum, co może nie być pożądane dla wszystkich obiektów docelowych.

Do tego jest stałe, prostym rozwiązaniem jest dodanie hak post_install do 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 

Kredyt na powyższym fragmencie kodu idzie do wszystkich pomocnych ludzi w wątku emisyjnej!

+0

To wszystko. Wielkie dzięki! Powinienem spojrzeć na poziom Cocoapods. Wyszedł z 28 mb na 19! – Dimillian

Powiązane problemy