私はGitの歴史をさかのぼって、巨大なファイルサイズの変更の原因を見つけましたが、私が見つけることができる唯一の本当の理由は、Xcode 6からXcode 7 GMへの切り替えです。
これらは、リリースビルド構成のアーカイブ操作.ipa
から作成されたファイルサイズのトップ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
圧倒的に大きいファイルは2つの(わずかに異なる)libswiftCore.dylib
ファイルで、合計で32 MBを超えます。Xcode 6によってビルドされたバンドルでは、これら2つのファイルの合計はわずか3 MBでした。
したがって、質問1は次のとおりです。なぜSwiftコアファイルが2度存在するのですか。(埋め込みコンテンツに含まれるSwiftコードがNoに設定されている)。
そして質問#2は:何が起こったのですか?Swiftコアのサイズが15 MB増加したのはなぜですか?これは永続的ですか?
追加のメモ:
- これは完全にObjective-Cでしたが、現在はほとんどSwiftのプロジェクトです。[ モジュールの定義]設定は[ はい]に設定されています。
- プロジェクトでは、CocoaPodsを
use_frameworks!
セットで使用します。 - 複数のデバイスとiOSバージョンでのTestFlightからの実際のダウンロードサイズを確認しました。それは30〜60 MBの範囲です(おそらく、アプリのスライスによる違いです)。以前は9 MBでした。