是什么影响了 IOS 应用程序中资产的大小,我该如何缩小它?

What contributes to the size of assets in an IOS App and how can I shrink this?

我在 Xcode 6 中内置了一个 iOS 应用程序,它使用资产目录来存储 71MB 的图像。我只在资产目录中包含 @3x 图像,以尝试将应用程序的大小保持在 100MB 以下。 @3x 规则的唯一例外是我为 AppIcon 组包含了 @1x 和 @2x 图像。

除了 AppIcon 文件是 .png 文件外,所有图像都是 .JPG 文件。

当我存档并创建一个 .IPA 文件时,IPA 的大小为 117MB。当我打开并查看 .IPA 中 Asset.car 文件的大小时,我发现它是 130MB。将此与项目中的资产目录(71MB)进行对比。我指出这一点是为了清楚,占用 40 MB 的不是其他编译代码。

我想存档此应用程序,以便文件大小尽可能保持在 80-90 MB 以下。考虑到 70MB 的资产,IPA 应该保持在 100MB 以下,但我想知道如何完成这个或者我可能需要采取哪些其他步骤或查看为什么我在 IPA 中为 70MB 的图像获得 130MB 的资产文件.

Assets.car is 6 times larger than actual Images.xcassets folder when archived 上的文章似乎就是答案。

我的资产目录中的整套 JPEG 都转换为更大的 PNG。我将除了我的 AppIcons 和 LaunchImage 之外的所有内容都从资产目录中转换到了一个普通文件夹中。所以那时我有一个装满 JPEG 的文件夹和一个小资产目录。

当我创建一个存档时,它是 67 MB,小得多!

有一个新的 CAR 工具:iOS-Asset-Extractor。这似乎比下面的 "cartool" 更好。

获取 cartool,针对您的 Assets.car 文件构建和 运行。这将创建一个包含来自 Assets.car 的图像文件的目录。这是一个简单的命令行工具。不完美,但应该可以帮助您理解正在发生的事情。

然后与您的预期进行比较,希望您能够弄清楚发生了什么..

据我了解,.jpg 文件已转换为 .png。如果您有大量资产,请考虑直接包括它们或作为文件夹参考。如果您正在阅读代码中的图像,则尤其如此。