我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因,但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM。
我发现这些是文件大小贡献最大的 10 个.ipa
创建自Archive操作在一个Release构建配置:
$ 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 1925355 59% 09-06-15 18:33 19a5c3c4 SwiftSupport/iphoneos/libswiftFoundation.dylib
2659232 Defl:N 1232897 54% 09-14-15 23:47 1a53a401 Payload/Roger.app/Frameworks/AFNetworking.framework/AFNetworking
1196624 Defl:N 545343 54% 09-14-15 23:47 19a063cb Payload/Roger.app/Frameworks/Bolts.framework/Bolts
到目前为止最大的文件是两个(略有不同)libswiftCore.dylib
文件,总计超过 32 MB。在 Xcode 6 构建的包中,这两个文件总共只有 3 MB。
所以问题#1 是:为什么 Swift 核心文件有两次? (嵌入内容包含 Swift 代码被设定为No).
问题#2 是:发生了什么?为什么 Swift 核心大小增加了 15 MB?这是永久的吗?
一些附加说明:
- 这是一个完全是 Objective-C 的项目,但现在主要是 Swift。这定义模块设置被设置为Yes.
- 该项目使用 CocoaPods
use_frameworks!
set.
- 我已经确认了 TestFlight 在多个设备和 iOS 版本上的实际下载大小,其范围在 30-60 MB 之间(大概差异是由于应用程序切片造成的)。以前是 9 MB。
最有可能是由 BitCode 引起的,我看到了同样的增长,但是一旦从 App Store 部署,应用程序的大小实际上并没有增长。
您也可以在应用程序和其他目标中禁用 BitCode,您应该会看到收缩。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)