我一直在Git历史上倒退找到文件大小变化的原因,但我能找到的唯一真正原因是从Xcode 6切换到Xcode 7 GM.
我发现这些是在Release版本配置.ipa的Archive操作中创建的前10个文件大小贡献者:
$ unzip -lv Roger\ Release.ipa | sort -k +3nr | head
41802768 Defl:N 16887199 60% 09-14-15 23:47 dc24cdc1 Payload/Roger.app/Frameworks/libswiftCore.dylib
41802400 Defl:N 16886076 60% 09-06-15 18:33 f939ea6a SwiftSupport/iphoneos/libswiftCore.dylib
11184032 Defl:N 5915625 47% 09-14-15 23:48 6ceac4a2 Payload/Roger.app/Roger
6399584 Defl:N 2670275 58% 09-14-15 23:47 0ac52d3f Payload/Roger.app/Frameworks/libPhoneNumber_iOS.framework/libPhoneNumber_iOS
5410384 Defl:N 2334189 57% 09-14-15 23:47 7a8cb03f Payload/Roger.app/Frameworks/Alamofire.framework/Alamofire
4521904 Defl:N 2292789 49% 09-14-15 23:47 95da0882 Payload/Roger.app/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit
4731552 Defl:N 1926357 59% 09-14-15 23:48 e05337de Payload/Roger.app/Frameworks/libswiftFoundation.dylib
4731168 Defl:N …Run Code Online (Sandbox Code Playgroud) 我们目前在 App Store 中有一个应用程序,它的大小根据 iTunes connect 如下:
iPhone 6:下载大小 21.8MB,安装大小 28.5MB
现在这还不算太糟。但是对于我们上传到 iTunes Connect 的更新版本,大小是这样的:
iPhone 6:下载大小 35.5MB,安装大小 73.1MB
原始包压缩大小为 114MB。
现在这太大了,甚至无法接受。我检查了存档中的 .app 文件(178MB),惊讶地发现我的代码仅占用 55MB(在调试模式下仅为 11MB),而 swift 标准库大约为 40MB。
这个版本的代码功能与之前的没有太大区别:我们添加了 iPad 支持,添加了一些图像(调试和发布存档的资产都是 7.8MB,这不是问题),并将我们的项目更新为 swift 3.
以上所有版本大小都开启了整体模块优化。我的构建设置中是否有可能导致如此巨大尺寸的配置?如果没有,我还能做些什么来尽可能地减小应用程序的大小?(尤其是 50MB 的代码)
此外,这是什么原因?因为我们没有太多更改代码,所以它是 swift 3 吗?