2014-09-22 2 views
7

Когда я добавил расширение «Сегодня», мое приложение неожиданно приобрело большой вес ... поэтому я сделал быстрый осмотр, чтобы узнать, откуда этот жир. Похоже, что .apex составляет 13 МБ, файл «Assets.car» даже больше, чем тот, который находится в моем основном приложении (+ 8 МБ). Дело в том, что я использую только 1 изображение в каталоге активов, который у меня есть в моем расширении.Главный каталог активов приложений, скопированный в настоящее время расширение

Я проверил внутри Xcode, мой основной каталог активов приложения не переключается на копирование с расширением, но похоже, что это действительно так.

Нормально ли это? Знаете ли вы, что делать, чтобы уменьшить конечный размер .apex?

Спасибо!

+0

Я тоже вижу это. Главное приложение имеет «assets.car» 4 МБ. Даже после удаления всех активов из ext он остается 16 МБ. –

+0

Да, мой widget assets.car даже больше моего основного приложения. – Dimillian

+0

Мы тоже это видим. Мы даже не используем много активов в наших расширениях. Кто-нибудь понял, как избавиться от этого? – toofah

ответ

3

Вы случайно используете Cocoapods?

В настоящее время существует open issue, который вызывает сценарий запуска Copy Pods Resources, чтобы найти все активы и скомпилировать их в большой архив, что может быть нежелательно для всех целей.

Пока это не является фиксированным, простое решение, чтобы добавить post_install крюк к вашему 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 

Кредит на фрагменте кода выше идет на все полезные люди в вопросе нить!

+0

Вот и все. Большое спасибо! Я должен был посмотреть на уровень Кокоапод. Пошел с 28 мб до 19! – Dimillian