Недавно я добавил расширение iOS 8 Photos в свое существующее (совместимое с iOS 7) приложение. Расширение разделяет некоторые значки и другие изображения с основным приложением. Поскольку я пока не могу использовать встроенные фреймворки для совместного использования этих ресурсов (недоступно в iOS 7), я добавил эти ресурсы к обеим целям - основному приложению и расширению, входящему в состав приложения. Поэтому я ожидал увеличения размера приложения примерно в два раза.
Но вот загвоздка: приложение теперь примерно в три раза больше! Я попытался понять, почему, и обнаружил, что скомпилированные ресурсы в пакете расширений более чем в два раза больше (38,6 МБ) по сравнению с ресурсами в основном приложении (17,2 МБ). Это странно, потому что они взяты из одного каталога активов.
После некоторых экспериментов я обнаружил, что это связано с версией iOS. Целевой объект расширения имеет iOS 8 в качестве целевого объекта развертывания (очевидно), а основное приложение по-прежнему имеет iOS 7. Когда я меняю цель развертывания основного приложения на iOS 8, его скомпилированные ресурсы также становятся более чем в два раза больше!
Я предполагаю, что для iOS 8 компилятор ресурсов автоматически генерирует изображения @ 3x для iPhone 6 Plus, даже если они не указаны явно. Проблема в том, что я решил не предоставлять их специально, чтобы избежать ненужного увеличения размера приложения (как ни парадоксально ...). Увеличенная версия мне показалась достаточно хорошей. Приложение также работает и выглядит так, как задумано на 6 Plus, созданном для iOS 7 (с небольшими активами).
TL; DR: для iOS 8 компилятор ресурсов дает гораздо большие результаты, чем для iOS 7.
Есть ли способ запретить ему это делать?