Sono andato indietro nella storia di Git per trovare la causa di un enorme cambiamento di dimensione del file, ma l'unica vera ragione che posso trovare è il passaggio da Xcode 6 a Xcode 7 GM.
Ho scoperto che questi sono i primi 10 contribuenti dimensione del file in un .ipa
creato dal Archive operazione su un rilascio configurazione di generazione:
$ 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
I file di gran lunga più grandi sono i due file (leggermente diversi) libswiftCore.dylib
, per un totale di oltre 32 MB. Nel bundle creato da Xcode 6 questi due file ammontavano a soli 3 MB.
Quindi la domanda n. 1 è: perché i file core di Swift sono presenti due volte? ( Il contenuto incorporato contiene il codice Swift è impostato su No ).
E la domanda n. 2 è: cosa è successo? Perché la dimensione del core di Swift è aumentata di 15 MB? È permanente?
Alcune note aggiuntive:
- Questo è un progetto che era interamente Objective-C ma ora è principalmente Swift. L' impostazione Definisce il modulo è impostata su Sì .
- Il progetto utilizza CocoaPods con
use_frameworks!
set. - Ho confermato la dimensione effettiva del download da TestFlight su più dispositivi e versioni iOS ed è compresa tra 30 e 60 MB (presumibilmente la differenza è dovuta all'affettamento dell'app). Una volta era 9 MB.