我一直在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  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。“ 定义模块”设置设置为“ 是”。
 - 该项目使用带有
use_frameworks!set的CocoaPods 。 - 我已经确认了在多个设备和iOS版本上从TestFlight实际下载的大小,并且在30-60 MB范围内(可能是由于应用程序切片造成的)。以前是9 MB。