3

我最近在我现有的(与 iOS 7 兼容的)应用程序中添加了一个 iOS 8 照片扩展。该扩展与主应用程序共享一些图标和其他图像。由于我还不能使用嵌入式框架来共享这些资产(在 iOS 7 中不可用),因此我将这些资产添加到了两个目标——主应用程序和捆绑在应用程序中的扩展。所以我预计应用程序的大小会增加大约两倍。

但这里有一个问题:应用程序现在大约是原来的三倍!我试图找出原因,发现扩展包中的已编译资产的大小(38.6 MB)是主应用程序中的资产(17.2 MB)的两倍多。这很奇怪,因为它们来自同一个资产目录。

经过一些实验,我发现它与iOS版本有关。扩展目标将 iOS 8 作为部署目标(显然),而主应用程序仍然具有 iOS 7。当我将主应用程序的部署目标更改为 iOS 8 时,它的编译资产也变得两倍多!

我的猜测是,对于 iOS 8,资产编译器会自动为 iPhone 6 Plus 生成 @3x 图像,即使它们没有明确提供。问题是,我决定不故意提供这些以避免不必要地增加应用程序的大小(多么讽刺......)。放大版对我来说已经足够好了。当为 iOS 7 构建时,该应用程序在 6 Plus 上也能正常工作并看起来像预期的那样(带有小资产)。

TL;DR:对于 iOS 8,资产编译器产生的结果比 iOS 7 大得多。

有没有办法告诉它不要这样做?

4

1 回答 1

2

尝试将 Assets.xcassets 压缩设置从 Default 更新为 Basic 或 GPU Best Quality 或 GPU Smallest Size。

Assets.car 的大小将恢复正常。

在此处输入图像描述

于 2017-03-10T12:42:11.867 回答