我最近在我现有的(iOS 7兼容)应用程序中添加了iOS 8照片扩展程序。该扩展程序与主应用程序共享一些图标和其他图像。由于我无法使用嵌入式框架来共享这些资产(在iOS 7中不可用),因此我将这些资产添加到两个目标 - 主应用程序和应用程序中捆绑的扩展程序。所以我预计应用程序的大小会增加大约两倍。
但是这里有一个问题:应用程序现在大约是其三倍!我试图找出原因并发现扩展束中的编译资产比主应用程序中的资产(17.2 MB)大两倍(38.6 MB)。这很奇怪,因为它们来自同一个资产目录。
经过一些实验,我发现它与iOS版本有关。扩展目标有iOS 8作为部署目标(显然),主应用程序仍然有iOS 7.当我将主应用程序的部署目标更改为iOS 8时,其编译资产也变得超过两倍!
我的猜测是,对于iOS 8,资产编译器会自动为iPhone 6 Plus生成@ 3x图像,即使它们没有明确提供。问题是,我决定不提供那些目的,以避免不必要地增加应用程序的大小(多么具有讽刺意味......)。按比例放大的版本看起来对我来说足够好。当为iOS 7(具有小资产)构建时,该应用程序也可以在6 Plus上运行并按预期显示。
TL; DR:对于iOS 8,资产编译器会为iOS 7生成更大的结果。
有没有办法告诉它不要这样做?