iOS App Slicing或Thinning无法正常工作。

5
我正在尝试优化我的iOS IPA的大小,并希望新的“iOS应用程序切片”可以减少最终输出中包含的图像数量,但似乎并非如此。我正在iOS 9.3上构建,部署目标为7.0(虽然也尝试了9.3没有效果)。这是一个通用应用程序,应用程序图标/启动图像在资源目录中(还有其他一些图像资源)。为了测试切片,我按照这里的说明进行操作:https://developer.apple.com/library/tvos/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html#//apple_ref/doc/uid/TP40012582-CH8-SW17。应用程序缩减大小报告显示设备类型之间的大小差异很小,而iPad和iPhone之间应该有很大的差异!
App Thinning Size Report for All Variants of myApp

Variant: myApp-iPad (4th generation)-etc.ipa
Supported devices: iPad (3rd generation) and iPad (4th generation)
App + On Demand Resources size: 71.8 MB compressed, 90.3 MB uncompressed
App size: 71.8 MB compressed, 90.3 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPad 2-etc.ipa
Supported devices: iPad 2 and iPad mini
App + On Demand Resources size: 71.6 MB compressed, 90.1 MB uncompressed
App size: 71.6 MB compressed, 90.1 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPad Pro (12.9-inch).ipa
Supported devices: iPad Pro (12.9-inch)
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPad Pro (9.7-inch).ipa
Supported devices: iPad Pro (9.7-inch)
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPad mini 3-etc.ipa
Supported devices: iPad Air, iPad mini 2, and iPad mini 3
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPad mini 4-etc.ipa
Supported devices: iPad Air 2 and iPad mini 4
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 4S.ipa
Supported devices: iPhone 4S
App + On Demand Resources size: 71.8 MB compressed, 90.3 MB uncompressed
App size: 71.8 MB compressed, 90.3 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 5-etc.ipa
Supported devices: iPhone 5 and iPhone 5c
App + On Demand Resources size: 71.8 MB compressed, 90.3 MB uncompressed
App size: 71.8 MB compressed, 90.3 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 5s.ipa
Supported devices: iPhone 5s
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 6 Plus.ipa
Supported devices: iPhone 6 Plus
App + On Demand Resources size: 71.9 MB compressed, 91.2 MB uncompressed
App size: 71.9 MB compressed, 91.2 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 6.ipa
Supported devices: iPhone 6
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 6s Plus.ipa
Supported devices: iPhone 6s Plus
App + On Demand Resources size: 71.9 MB compressed, 91.2 MB uncompressed
App size: 71.9 MB compressed, 91.2 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone 6s.ipa
Supported devices: iPhone 6s
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPhone SE.ipa
Supported devices: iPhone SE
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPod touch (6th generation).ipa
Supported devices: iPod touch (6th generation)
App + On Demand Resources size: 71.5 MB compressed, 90.9 MB uncompressed
App size: 71.5 MB compressed, 90.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp-iPod touch.ipa
Supported devices: iPod touch
App + On Demand Resources size: 71.8 MB compressed, 90.3 MB uncompressed
App size: 71.8 MB compressed, 90.3 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed


Variant: myApp.ipa
Supported devices: Universal
App + On Demand Resources size: 75.3 MB compressed, 99.9 MB uncompressed
App size: 75.3 MB compressed, 99.9 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed

在进一步调查该过程导出的“特定设备变体”时,我发现似乎没有进行任何切片。

iPhone 5设备变体的应用有效载荷 - 解压IPA后:

App Payload - After unzipping IPA

如果我的理解正确,对于其他iOS设备(例如iPhone 6+、iPad),不应该存在图标或启动图像。以下是我的资源目录的内容(在xcode和finder中),如有帮助:

asset catalog

asset catalog in finder

提前感谢!:)

1个回答

2

回答自己的问题:

我目前的假设是启动图像和图标不会被删减/分割。这是因为它们经常用于在启动时检测对某些设备的支持。

然而,我可以确认资产目录中的其他图像资源已被正确地删减。

您可以通过解压IPA并在其中的Assets.car文件上运行CARExtractor工具来进行检查。

https://github.com/Marxon13/iOS-Asset-Extractor/tree/master/CARExtractor


我还发现应用程序图标没有被切片,至少当我从Xcode在设备上构建和运行应用程序时是这样的。我在你的假设中看不出原因。您能解释一下为什么在iPhone上运行的应用程序需要检测对iPad的支持吗? - jesse
例如,如果包中有 iPhone 6 或 6 Plus 的启动图像,iOS 就会知道您已经专门构建它以支持该设备类型,并使用屏幕的完整分辨率。我是通过从 IPA 中删除一些图像并看到应用在 iPhone 6 上拉伸而发现这一点的。这很蠢,我知道! - Wayne Shelley
抱歉,我没听懂你的意思。你的意思是如果应用程序是为iPhone 6构建的,它仍然需要iPhone 6 Plus的启动图像,否则它将在iPhone 6上拉伸显示? - jesse
不好意思。苹果正在使用启动画面来暗示对设备的支持。因此,如果在 iPhone 6 Plus 上运行二进制文件时缺少启动画面图像,则假定它是为 iPhone 6 构建的,并将整个应用程序拉伸而不是使用本地分辨率。 - Wayne Shelley
是的,手动删除不是一个选项,因为切片是由苹果服务器完成的。无论如何,感谢您分享您的经验。 - jesse
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接